182 Commits

Author SHA1 Message Date
Hadi 7b8774d81f update todos
Former-commit-id: f760d9b564
2024-10-15 15:03:50 +02:00
Hadi 017160cff1 change tab size for markdown
Former-commit-id: 80e52cc5c6
2024-10-15 15:02:39 +02:00
Hadi 949c6dacfd Add comments to explain each file
Former-commit-id: 915a767283
2024-10-15 15:02:07 +02:00
Hadi 7bd210ba3c update markdown tab size
Former-commit-id: 4733414bb3
2024-10-15 14:24:58 +02:00
Hadi 4e2c6cbce5 hyprshot -> grimblast
Former-commit-id: 3910bef1bf
2024-10-15 14:14:12 +02:00
Hadi 35f0fcbb1f add glib
Former-commit-id: 92dded9cc6
2024-10-15 14:05:20 +02:00
Hadi d4f2128b72 update flake
Former-commit-id: 5e94040f34
2024-10-15 13:42:42 +02:00
Hadi d5486d9b86 update todo
Former-commit-id: 178cb469ab
2024-10-15 13:42:12 +02:00
Hadi 044adea965 From flake to nixvim plugin
Former-commit-id: 59202f132e
2024-10-15 03:47:58 +02:00
Hadi b637233137 update todo
Former-commit-id: 9f98570ef4
2024-10-15 03:47:43 +02:00
Hadi 82b96a1900 update todo
Former-commit-id: bcd3bd19f0
2024-10-15 03:28:56 +02:00
github-actions bcec00e51c Update README.md (auto)
Former-commit-id: ad13d77413
2024-10-15 01:22:40 +00:00
Hadi f591bd6b2b edit readme
Former-commit-id: 98d8e2c87d
2024-10-15 03:22:09 +02:00
github-actions 87db8442ed Update README.md (auto)
Former-commit-id: fd87e06e20
2024-10-15 01:20:20 +00:00
Hadi d628b6a5a4 Edit readme
Former-commit-id: 6c9e632ab8
2024-10-15 03:19:53 +02:00
Hadi 95fbe68e96 Edit github actions
Former-commit-id: 66160d6ae2
2024-10-15 03:18:22 +02:00
Hadi 3acb5429cd Changes config screenshots
Former-commit-id: 480ae1761d
2024-10-15 03:17:17 +02:00
Hadi 50304e6fbe Edit aliases
Former-commit-id: 1b41b58e68
2024-10-15 03:16:57 +02:00
Hadi 241757518c Update todolist
Former-commit-id: bbbf23b3b0
2024-10-15 02:47:32 +02:00
Hadi adab419e03 Config lazygit
Former-commit-id: ff2d397191
2024-10-15 02:45:32 +02:00
Hadi 7103042597 Merge branch 'main' of github.com:anotherhadi/nixy
Former-commit-id: afe8e81bf6
2024-10-15 02:34:33 +02:00
Hadi 74dc346ea3 Init lazygit hm module
Former-commit-id: d097caf401
2024-10-15 02:34:18 +02:00
Hadi 47305b4f49 Add git aliases
Former-commit-id: 4b6814ae28
2024-10-15 02:34:00 +02:00
github-actions 05a795fb1f Update README.md (auto)
Former-commit-id: c76675c145
2024-10-15 00:29:21 +00:00
Hadi 0ec9ee4d51 Move files to .github
Former-commit-id: ff86acc8c8
2024-10-15 02:28:55 +02:00
Hadi ba8e07ed87 Edit github actions
Former-commit-id: 7bb5c3b36c
2024-10-15 02:28:24 +02:00
Hadi edc9615f6f Add transparentButtons option in hyprpanel
Former-commit-id: 1c477bacc3
2024-10-15 02:23:14 +02:00
Hadi fbef284ba2 Update todo
Former-commit-id: 391d3dd58b
2024-10-15 02:18:54 +02:00
Hadi 241fa97263 Add lazygit
Former-commit-id: e6dd29dac7
2024-10-15 02:17:45 +02:00
Hadi b155c35a9c Add info
Former-commit-id: 67bed2c355
2024-10-14 22:29:08 +02:00
Hadi df659a917c Update github actions
Former-commit-id: 5ec16c82c4
2024-10-14 22:27:33 +02:00
github-actions 85a0c3d118 Update README.md (auto)
Former-commit-id: 277faa310d
2024-10-14 20:21:09 +00:00
Hadi a08c6833e4 Init tofi
Former-commit-id: 059acab3f9
2024-10-14 22:20:39 +02:00
Hadi 9631d4ef4f Update todolist
Former-commit-id: 95248322f7
2024-10-14 22:20:30 +02:00
Hadi 703bb9ff79 Update readme
Former-commit-id: 0ea82dbf32
2024-10-14 22:20:16 +02:00
Hadi 7f6bf8e405 Update github actions
Former-commit-id: 65b9ab0b7e
2024-10-14 22:19:25 +02:00
Hadi 4ec04c372a Update readme
Former-commit-id: 4fd7e39c4e
2024-10-14 22:14:49 +02:00
Hadi cf12e5c310 Update github actions
Former-commit-id: de477fd3dd
2024-10-14 22:14:30 +02:00
Hadi bfb8cc8880 Update readme
Former-commit-id: 62e6928036
2024-10-14 22:13:13 +02:00
Hadi 35ea4e364b Update github actions
Former-commit-id: 4cfdd8f461
2024-10-14 22:12:52 +02:00
Hadi 5596b17feb Update readme
Former-commit-id: 2909de8e3a
2024-10-14 22:11:18 +02:00
Hadi 234d68d34b Fix github action
Former-commit-id: e2f6c5e1ff
2024-10-14 22:09:29 +02:00
Hadi 1b40ad6547 Update readme
Former-commit-id: 206de96fa2
2024-10-14 22:08:31 +02:00
Hadi d6ea51c5ad Update github actions
Former-commit-id: ff7f46aa5d
2024-10-14 22:07:10 +02:00
Hadi 10b4e2b826 Add white-noise app
Former-commit-id: 34cc630789
2024-10-14 21:23:59 +02:00
Hadi e5fd687524 Update todolist
Former-commit-id: eb4cb4f4f4
2024-10-14 21:23:45 +02:00
Hadi c872dfe1f5 Init KDE Connect
Former-commit-id: 52d7a9f2f0
2024-10-14 21:10:16 +02:00
Hadi 7a37403334 Fix gtk settings key
Former-commit-id: a8dca6d1c1
2024-10-14 20:57:56 +02:00
Hadi 5c8674f619 Flake update
Former-commit-id: d06355d5b7
2024-10-14 20:51:31 +02:00
Hadi 2fe6378221 Add documentation per modules
Former-commit-id: 39f74ee63c
2024-10-14 16:35:57 +02:00
Hadi 417e18f7dc Edit network placement
Former-commit-id: bd57c19a2b
2024-10-14 14:22:14 +02:00
Hadi 6bba61db34 Edit popup font size
Former-commit-id: b9e3f09e7f
2024-10-11 22:33:29 +02:00
Hadi 6525cc6a0b Fix copilot completion key overlap
Former-commit-id: f5388f478b
2024-10-11 13:02:43 +02:00
Hadi 8df6f3faac Edit todo
Former-commit-id: a24167d107
2024-10-10 22:42:02 +02:00
Hadi e6bf30682a Init zenmode
Former-commit-id: 53703c0db0
2024-10-10 22:41:39 +02:00
Hadi 68d78063af merge gh actions updates
Former-commit-id: 6adc0d7c3c
2024-10-10 21:43:33 +02:00
Hadi 623675965c Init hyprswitch
Former-commit-id: 4969b5aa8f
2024-10-10 21:43:24 +02:00
github-actions bf1c8e33a4 Update KEYBINDINGS-HYPRLAND.md (auto)
Former-commit-id: f595e67528
2024-10-10 14:33:34 +00:00
Hadi 28d03937a4 Update
Former-commit-id: b5071b889b
2024-10-10 16:33:21 +02:00
Hadi a53de1dc18 Update
Former-commit-id: fa59c4d8c2
2024-10-10 16:31:30 +02:00
github-actions c85f9f5add Update README.md (auto)
Former-commit-id: 568306aade
2024-10-10 14:29:41 +00:00
Hadi ab5bd64fa8 Update
Former-commit-id: 159ce3c1c2
2024-10-10 16:29:14 +02:00
Hadi 0f587c2d7a Update
Former-commit-id: df52538c42
2024-10-10 15:35:23 +02:00
Hadi 90917d269f Update
Former-commit-id: ee894aaea7
2024-10-10 15:28:25 +02:00
Hadi 4ae0793b12 Update
Former-commit-id: bd7ff1cc20
2024-10-10 15:09:59 +02:00
Hadi 6e50f7cb72 Update
Former-commit-id: 3c2157260d
2024-10-09 18:34:02 +02:00
Hadi 23d9aad7aa Update
Former-commit-id: 36e9281397
2024-10-09 17:09:33 +02:00
Hadi 70baccb96b Put every variables in top of the file for easy copy to another config
Former-commit-id: 0bd55fdc10
2024-10-09 15:12:50 +02:00
Hadi 06a41b3d6e Update
Former-commit-id: 55c7c7068a
2024-10-08 21:56:44 +02:00
Hadi c98f623bbf Update
Former-commit-id: 5603871ef1
2024-10-08 20:46:56 +02:00
Hadi cb2272746f Update
Former-commit-id: a554505de2
2024-10-08 20:07:56 +02:00
Hadi cd943828cc Update
Former-commit-id: 3f0a694b5f
2024-10-08 20:02:45 +02:00
Hadi 8a7a3354eb Update
Former-commit-id: a781a227ac
2024-10-08 13:00:40 +02:00
Hadi aa8f600bd1 Remove duckduckgo theme changing alert
Former-commit-id: 5e8139963f
2024-10-08 12:37:56 +02:00
Hadi 9159b34d59 Update the readme
Former-commit-id: 85b8874094
2024-10-08 12:35:38 +02:00
Hadi becdaf407e Update the readme
Former-commit-id: d7184174cd
2024-10-08 12:34:50 +02:00
Hadi 746f105209 Update
Former-commit-id: 8d7fbd74b5
2024-10-08 12:33:38 +02:00
Hadi 96932de4fa Update
Former-commit-id: 36527362a7
2024-10-08 11:43:12 +02:00
Hadi 69c12bf054 Update
Former-commit-id: e83de257ad
2024-10-08 11:29:59 +02:00
Hadi 16aa758975 Update
Former-commit-id: c401b9bd7f
2024-10-08 10:39:10 +02:00
Hadi 07b4b490ae Update
Former-commit-id: 741a6f97ae
2024-10-08 10:17:01 +02:00
Hadi ecf6ff0627 Update
Former-commit-id: 52e267a436
2024-10-07 20:41:30 +02:00
Hadi c5db47ab0e Update
Former-commit-id: d11cf580f9
2024-10-07 20:27:07 +02:00
Hadi 26bc2fef9a Update
Former-commit-id: d37504de7c
2024-10-07 18:34:06 +02:00
Hadi 27dcbaafa4 Update
Former-commit-id: 8a41ffad2f
2024-10-07 13:13:23 +02:00
Hadi 87695c4e21 Update
Former-commit-id: 3aa0fb8a22
2024-10-07 12:02:26 +02:00
Hadi 3b43b088ba Update
Former-commit-id: 75f2c2c7c6
2024-10-07 11:17:59 +02:00
Hadi 792466d8c6 Update
Former-commit-id: ab65fe342b
2024-10-07 10:13:21 +02:00
Hadi 25be368726 Update
Former-commit-id: 905cc9a885
2024-10-06 18:49:52 +02:00
Hadi 28d0da590c Testing
Former-commit-id: 23dcfd5290
2024-10-05 11:48:16 +02:00
Hadi 064407796e Update
Former-commit-id: 270c1b959e
2024-10-04 21:12:13 +02:00
Hadi 98f75ebf3c Update
Former-commit-id: 58fa41a210
2024-10-04 21:03:01 +02:00
Hadi f7ab27b629 Update
Former-commit-id: 8f6b049129
2024-10-04 10:58:53 +02:00
Hadi 049c0c5803 Update
Former-commit-id: 7047ffe785
2024-10-03 10:18:49 +02:00
Hadi 24e5badf06 Update
Former-commit-id: fe657984fe
2024-10-01 17:16:24 +02:00
Hadi 964c511052 Update
Former-commit-id: 660c99d5ed
2024-10-01 15:05:02 +02:00
Hadi c971073a28 Update
Former-commit-id: 7f1c7446f8
2024-10-01 14:57:15 +02:00
Hadi 6f5fa48009 Update
Former-commit-id: 804e6b255e
2024-10-01 13:58:05 +02:00
Hadi 2c8b7ef08a Update
Former-commit-id: 381e839dfa
2024-10-01 13:21:25 +02:00
Hadi c3f611af88 Update
Former-commit-id: 57c0df5d48
2024-09-30 21:15:21 +02:00
Hadi 4d3b0e5244 Update
Former-commit-id: c1609eefff
2024-09-23 15:12:05 +02:00
Hadi 121991682b Update
Former-commit-id: 22c67467c0
2024-09-20 13:35:40 +02:00
Hadi a80e52d0d0 Update
Former-commit-id: f49ac89514
2024-09-18 23:54:02 +02:00
Hadi 21845bef5f Update
Former-commit-id: e47edc0c1f
2024-09-18 23:53:39 +02:00
Hadi ebdbddf5c0 Update
Former-commit-id: 2721d11575
2024-09-18 00:52:23 +02:00
Hadi cceb96c26b Update
Former-commit-id: c97e51a9d2
2024-09-16 17:28:52 +02:00
Hadi 943eaf2116 Update
Former-commit-id: ac293a378c
2024-09-16 17:24:47 +02:00
Hadi 1d034481e9 Update
Former-commit-id: 615028dcca
2024-09-15 20:58:24 +02:00
Hadi 079e01f71e update
Former-commit-id: feeb938f5e
2024-09-13 22:07:19 +02:00
Hadi f9733872fd Update
Former-commit-id: b6ec38b1a1
2024-09-13 20:04:14 +02:00
Hadi 5a235ce597 Update
Former-commit-id: 86d990f157
2024-09-12 01:36:59 +02:00
Hadi a21e68fe5d Update
Former-commit-id: a16ea9af7d
2024-09-12 00:25:37 +02:00
Hadi f7616d564b Update
Former-commit-id: 7904e497bd
2024-09-11 17:53:25 +02:00
Hadi b1f7498303 Update
Former-commit-id: 7f5e4a8e6d
2024-09-10 09:50:27 +02:00
Hadi 1b6a2dd89e Update
Former-commit-id: 1a7e84a8dd
2024-09-09 13:56:45 +02:00
Hadi f985ded50a Update
Former-commit-id: 381f88cf0d
2024-09-07 17:25:21 +02:00
Hadi 7ecde5089e Update
Former-commit-id: 166c9f3139
2024-09-06 20:19:21 +02:00
Hadi c4415474c3 Update
Former-commit-id: 316e0cd2d3
2024-09-04 22:37:24 +02:00
Hadi a8e6060a92 Update
Former-commit-id: 8fe7237409
2024-09-04 22:36:17 +02:00
Hadi 28e7f5c0dc Update
Former-commit-id: 2ffa7e9518
2024-09-04 22:01:48 +02:00
Hadi 0968954de1 Update
Former-commit-id: cc8d0ddca3
2024-09-04 21:24:51 +02:00
Hadi e6b7406730 update
Former-commit-id: da2aab6f76
2024-09-04 21:07:53 +02:00
Hadi a3d38d8183 update
Former-commit-id: 79403b916d
2024-09-04 21:06:59 +02:00
Hadi 932f6b6dbb Update
Former-commit-id: 0489f7eaa7
2024-09-04 21:04:53 +02:00
Hadi c97948ba09 Release v2.4.0
Former-commit-id: 7ddff66f00
2024-09-04 10:11:28 +02:00
Hadi a4050c3422 Update
Former-commit-id: e1f973cabf
2024-09-04 10:10:52 +02:00
Hadi c025097810 Update
Former-commit-id: e38895c4a5
2024-09-04 10:10:32 +02:00
Hadi 769880a865 Update
Former-commit-id: c2e6fd7d32
2024-09-04 09:34:42 +02:00
Hadi f7d00d972f Update
Former-commit-id: 3d8bcaeeb2
2024-09-04 02:02:57 +02:00
Hadi 3a65e6b9a4 Add wofi clipman
Former-commit-id: 4135134261
2024-09-04 01:53:36 +02:00
Hadi 893417e316 Add wofi emoji
Former-commit-id: 027ef1c398
2024-09-04 01:44:37 +02:00
Hadi 5bf5e9dee3 Change to gammastep
Former-commit-id: 659509e613
2024-09-04 01:40:24 +02:00
Hadi 36d09253cf Update
Former-commit-id: e9a20f49e2
2024-09-02 18:30:30 +02:00
Hadi e69ebdd9d5 Update
Former-commit-id: 75562adea8
2024-09-02 09:29:50 +02:00
Hadi 697a5c3d63 Update
Former-commit-id: 4afca71b91
2024-08-30 17:29:30 +02:00
Hadi 4636723f7c Update
Former-commit-id: 4a8f1be75f
2024-08-30 17:02:38 +02:00
Hadi 7bdbc3fdde Update
Former-commit-id: 4540b40dc4
2024-08-30 16:13:57 +02:00
Hadi 66e52892ba Update
Former-commit-id: fcd5eca04f
2024-08-30 16:06:22 +02:00
Hadi 437fe822ed Update
Former-commit-id: da1b88305d
2024-08-30 15:47:17 +02:00
Hadi 48f7170f4f Update
Former-commit-id: f0e9294982
2024-08-30 14:16:30 +02:00
Hadi 9943a1dacf Update
Former-commit-id: b3f20e6aef
2024-08-30 09:33:57 +02:00
Hadi 6cc1d430a5 Update
Former-commit-id: 48a59c4c55
2024-08-29 22:46:04 +02:00
Hadi 8b5ff95ba3 Update
Former-commit-id: c83e5b2213
2024-08-29 17:04:05 +02:00
Hadi 678098460a Update
Former-commit-id: 55a5c52c51
2024-08-29 14:29:05 +02:00
Hadi 5eb34e05ab Release v2.3.0
Former-commit-id: 90e8d5577e
2024-08-28 12:30:52 +02:00
Hadi e94c09a5e2 Fetch the gtk flatcolor theme folder from github
Former-commit-id: 835a9e9da2
2024-08-28 12:30:04 +02:00
Hadi 0d00056d61 Update
Former-commit-id: 3c171c33be
2024-08-28 11:43:03 +02:00
Hadi 11909b2db3 Update
Former-commit-id: aa8fca0bed
2024-08-26 17:48:05 +02:00
Hadi 50ad65ec50 Update
Former-commit-id: 1255919f41
2024-08-24 17:09:12 +02:00
Hadi 128b9a79c3 update
Former-commit-id: 109f31151d
2024-08-23 11:42:33 +02:00
Hadi e17a7f6e5c update
Former-commit-id: 3c3acd03b4
2024-08-23 11:28:15 +02:00
Hadi 60c6ba9bd1 update
Former-commit-id: 65c95ac82a
2024-08-23 11:28:07 +02:00
Hadi 4362d3ada7 update
Former-commit-id: 776095c817
2024-08-23 11:25:23 +02:00
Hadi e73350a76b update
Former-commit-id: d36952e040
2024-08-23 11:23:16 +02:00
Hadi 71b6f444c2 update
Former-commit-id: ae0480cab3
2024-08-23 10:59:21 +02:00
Hadi 8cb73c1a34 update
Former-commit-id: bd8e69fe44
2024-08-23 10:58:07 +02:00
Hadi 70596d95fb update
Former-commit-id: ddeaf0170d
2024-08-23 10:56:42 +02:00
Hadi d937db8573 update
Former-commit-id: f27b66f878
2024-08-23 10:52:35 +02:00
Hadi 1c6a9f5caa update
Former-commit-id: 574b0043ac
2024-08-23 10:52:11 +02:00
Hadi 3470c61c5e update
Former-commit-id: fbd804939f
2024-08-23 10:51:31 +02:00
Hadi 005aaef5e1 update
Former-commit-id: cfa4e187c5
2024-08-23 10:31:25 +02:00
Hadi 03490447cb update
Former-commit-id: b1d3094bcc
2024-08-23 10:25:43 +02:00
Hadi 280b114e66 update
Former-commit-id: 1f7ca17d94
2024-08-23 10:12:00 +02:00
Hadi ed4eba3d14 update
Former-commit-id: d939bc6f53
2024-08-23 10:11:07 +02:00
Hadi b70aa6661b update
Former-commit-id: 3419421098
2024-08-23 10:09:02 +02:00
Hadi b0507d10ea Update
Former-commit-id: d816099985
2024-08-22 21:02:14 +02:00
Hadi c94a3b85d8 update
Former-commit-id: 28424b82ab
2024-08-22 16:28:08 +02:00
Hadi 04015018a4 update
Former-commit-id: 771dceeb06
2024-08-22 16:11:48 +02:00
Hadi fe1f3fce14 update
Former-commit-id: a2d4d36289
2024-08-22 16:07:39 +02:00
Hadi b1c379221e update
Former-commit-id: e4fce0a17a
2024-08-22 16:06:44 +02:00
Hadi 5812e60eb5 update
Former-commit-id: 88a8168ce2
2024-08-22 16:02:10 +02:00
Hadi e7f2c03502 update
Former-commit-id: 58d809d860
2024-08-22 15:41:28 +02:00
Hadi 9db064e331 update
Former-commit-id: 4b3f43e402
2024-08-22 15:32:46 +02:00
Hadi 7fce5419aa update
Former-commit-id: bbe0574051
2024-08-22 15:28:47 +02:00
Hadi 948542bbd8 Update
Former-commit-id: 3ef71b9fa2
2024-08-22 15:25:32 +02:00
Hadi 4ab85f4f1c Update
Former-commit-id: a240a76a8e
2024-08-20 15:27:18 +02:00
Hadi 7d2e868a03 Update
Former-commit-id: d254085e29
2024-08-20 00:17:10 +02:00
Hadi 5f794cfabd Update
Former-commit-id: ac2223ad24
2024-08-19 22:50:30 +02:00
Hadi f5f37f420d Update
Former-commit-id: 8092a2d348
2024-08-19 22:28:49 +02:00
Hadi b6a0ac38de Update
Former-commit-id: c434816d83
2024-08-19 22:20:59 +02:00
Hadi 56d0aac939 Update
Former-commit-id: 9e8637e9a8
2024-08-19 21:09:21 +02:00
Hadi 9e6dbb465b Update
Former-commit-id: d1896b626b
2024-08-19 20:40:29 +02:00
479 changed files with 3366 additions and 18828 deletions
+111
View File
@@ -0,0 +1,111 @@
<div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/.github/assets/logo.png" width="120px" />
</div>
<br>
# Nixy
<br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=starship&logoColor={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=github&logoColor={primarycolor}">
</a>
<a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor={backgroundcolor}&logo=NixOS&logoColor={primarycolor}&color={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA={backgroundcolor}&colorB={primarycolor}&logo=unlicense&logoColor={primarycolor}"/>
</a>
</div>
<br>
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles.
I'm Hadi, a french developer, student in infosec, enthusiastic about nix, golang & blockchains.
This is my own, **keyboard-centric**, and **minimalistic** NixOS configuration.
I enable vim-like keybindings everywhere I can, and I use a lot of custom scripts to make my life easier.
**Nixy key points:**
- Hypr-ecosystem first (hyprland, hyprlock, hyprpanel, hypridle, ...)
- Stylix/base16 themes
- Vim-like keybindings everywhere (hyprland, qutebrowser, nvim, ...)
## Table of Content
{md_table_of_content}
## Gallery
![Nixy helper, peaclock](.github/assets/nixy/1.png)
![Qutebrowser, pipes, shell](.github/assets/nixy/2.png)
![nvim, lazygit](.github/assets/nixy/3.png)
![spotify, cava](.github/assets/nixy/4.png)
## Architecture
### 🏠 home
Those are the dotfiles and configuration files for user-level configuration
**Subfolders:**
- `programs` is a collection of apps configured with home-manager
- `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- `system` is some "desktop environment" configuration
### 🐧 nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...)
### 🎨 themes
Those are the themes used in the system configuration.
Those themes are based on [stylix](https://github.com/danth/stylix).
See avaiable themes in [THEMES.md](docs/THEMES.md)
### 💻 hosts
Those are the host-specific configurations.
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
## Installation
1. Clone the repo
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
2. Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file
3. Add your `hardware-configuration.nix` to your new host's folder
4. Add your 'nixosConfigurations' inside `flake.nix`
> [!Important]
> I added few `# CHANGEME` comments in the files to help you find what to change. Be sure to check them up.
> You can use `rg "CHANGEME"` to find them all with ripgrep.
> [!TIP]
> When you add new files, don't forget to run `git add .` to add them to the git repository
5. Build the system
```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
```
## Documentation
- [THEMES](docs/THEMES.md): How themes work and how to create your own
- [SCRIPTS](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [WALLPAPERS](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy.
- [TODO](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

+20
View File
@@ -0,0 +1,20 @@
#!/usr/bin/env bash
# Create the README.md file from the .github/assets/README_template.md file
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
README_FILE="./README.md"
table_of_content=$(markdown-table-of-contents --start-by 2 ./.github/assets/README_template.md) # https://github.com/anotherhadi/markdown-table-of-contents
readme_content=$(cat "./.github/assets/README_template.md")
# Replace variables
readme_content=${readme_content//\{primarycolor\}/A594FD}
readme_content=${readme_content//\{backgroundcolor\}/0b0b0b}
readme_content=${readme_content//\{md_table_of_content\}/$table_of_content}
echo "[//]: # (This file is autogenerated)" >"$README_FILE"
echo "$readme_content" >>"$README_FILE"
sed 's/\r//' "$README_FILE" >"/tmp/readme.md"
mv "/tmp/readme.md" "$README_FILE"
+26
View File
@@ -0,0 +1,26 @@
#!/usr/bin/env bash
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
DOCS_FILE="./docs/SCRIPTS.md"
SCRIPTS_FOLDER="./home/scripts"
# search for every directory in the scripts folder:
# The docs for each scripts are in the beginning of the file prefixed by "#-" or "# -" for the title
# Inside the folders, the scripts are stored in default.nix files
echo "[//]: # (This file is autogenerated)" >"$DOCS_FILE"
echo "# Scripts" >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
echo "Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path." >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
for folder in "$SCRIPTS_FOLDER"/*; do
script="$folder/default.nix"
[[ -f "$script" ]] || continue
content=$(cat "$script")
content=$(echo "$content" | grep -E "^#-|^# -" | sed 's/^#- //;s/^# - //;s/#-//')
echo "$content" >>"$DOCS_FILE"
echo "" >>"$DOCS_FILE"
done
@@ -4,7 +4,7 @@
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1) [[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
KEYBINDINGS_FILE="./docs/KEYBINDINGS.md" KEYBINDINGS_FILE="./docs/KEYBINDINGS-HYPRLAND.md"
function getList() { function getList() {
content=$1 content=$1
@@ -17,9 +17,9 @@ function getList() {
echo "$list" echo "$list"
} }
[[ -f "./home/system/hyprland/default.nix" ]] || (echo "File ./home/system/hyprland/default.nix not found" && exit 1) [[ -f "./home/system/hyprland/bindings.nix" ]] || (echo "File ./home/system/hyprland/bindings.nix not found" && exit 1)
config=$(cat "./home/system/hyprland/default.nix") config=$(cat "./home/system/hyprland/bindings.nix")
# Bind # Bind
bind=$(getList "$config" "bind") bind=$(getList "$config" "bind")
@@ -33,29 +33,28 @@ bindle=$(getList "$config" "bindle")
# Join the lists: # Join the lists:
keybindings=$(echo -e "$bind\n$bindm\n$bindl\n$bindle" | grep '"') keybindings=$(echo -e "$bind\n$bindm\n$bindl\n$bindle" | grep '"')
echo "# Keybindings" >"$KEYBINDINGS_FILE" echo "[//]: # (This file is autogenerated)" >"$KEYBINDINGS_FILE"
echo "# Keybindings for Hyprland" >>"$KEYBINDINGS_FILE"
echo "" >>"$KEYBINDINGS_FILE" echo "" >>"$KEYBINDINGS_FILE"
echo "The list of the keybindings working on Hyprland:" >>"$KEYBINDINGS_FILE" echo "> [!NOTE]" >>"$KEYBINDINGS_FILE"
echo "> SUPER is the windows key by default" >>"$KEYBINDINGS_FILE"
echo "" >>"$KEYBINDINGS_FILE" echo "" >>"$KEYBINDINGS_FILE"
echo "| Description | Keybinding |" >>"$KEYBINDINGS_FILE" echo "| Description | Keybinding |" >>"$KEYBINDINGS_FILE"
echo "| -- | -- |" >>"$KEYBINDINGS_FILE" echo "| -- | -- |" >>"$KEYBINDINGS_FILE"
echo "| Switch Workspace | SUPER + {Number} |" >>"$KEYBINDINGS_FILE" echo "| Switch Workspace | SUPER + {Number} |" >>"$KEYBINDINGS_FILE"
echo "| Move app to Workspace | SHIFT + SUPER + {Number} |" >>"$KEYBINDINGS_FILE" echo "| Move app to Workspace | SHIFT + SUPER + {Number} |" >>"$KEYBINDINGS_FILE"
echo "$keybindings" | while read line; do echo "$keybindings" | while read -r line; do
comment=$(echo "$line" | cut -d\# -f2) comment=$(echo "$line" | cut -d\# -f2)
line=$(echo "$line" | cut -d\# -f1) line=$(echo "$line" | cut -d\# -f1)
line=${line:1:${#line}-3} line=${line:1:${#line}-3}
mod=$(echo "$line" | cut -d, -f1) mod=$(echo "$line" | cut -d, -f1)
key=$(echo "$line" | cut -d, -f2) key=$(echo "$line" | cut -d, -f2)
dispatcher=$(echo "$line" | cut -d, -f3) # dispatcher=$(echo "$line" | cut -d, -f3)
params=$(echo "$line" | cut -d, -f4) # params=$(echo "$line" | cut -d, -f4)
[[ $mod == '$mod' ]] && mod="SUPER + " [[ $mod == '$mod' ]] && mod="SUPER + "
[[ $mod == '$shiftMod' ]] && mod="SHIFT + SUPER + " [[ $mod == '$shiftMod' ]] && mod="SHIFT + SUPER + "
echo "| $comment | $mod$key |" >>"$KEYBINDINGS_FILE" echo "| ${comment:1} | $mod$key |" >>"$KEYBINDINGS_FILE"
done done
pandoc -t commonmark_x "$KEYBINDINGS_FILE" -o "/tmp/keybindings.md"
mv "/tmp/keybindings.md" "$KEYBINDINGS_FILE"
@@ -0,0 +1,24 @@
on:
push:
paths:
- 'home/system/hyprland/bindings.nix'
permissions:
contents: write
jobs:
update-readme:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Run a script
run: |
chmod +x ./.github/scripts/keybindings_to_markdown.sh
./docs/.github/keybindings_to_markdown.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update KEYBINDINGS-HYPRLAND.md (auto)"
git push
+31
View File
@@ -0,0 +1,31 @@
on:
push:
paths:
- '.github/assets/README_template.md'
permissions:
contents: write
jobs:
update-readme:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '^1.23'
- name: Install required dependencies
run: |
go install github.com/anotherhadi/markdown-table-of-contents@latest
- name: Run a script
run: |
chmod +x ./.github/scripts/create_readme.sh
./.github/scripts/create_readme.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update README.md (auto)"
git push
+24
View File
@@ -0,0 +1,24 @@
on:
push:
paths:
- 'home/scripts'
permissions:
contents: write
jobs:
update-readme:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./
steps:
- name: Check out the repository to the runner
uses: actions/checkout@v4
- name: Run a script
run: |
chmod +x ./.github/scripts/create_scripts_docs.sh
./.github/scripts/create_scripts_docs.sh
git config user.name github-actions
git config user.email github-actions@github.com
git add .
git commit -m "Update SCRIPTS.md (auto)"
git push
+2 -2
View File
@@ -1,11 +1,11 @@
keys: keys:
- &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334 - &primary age12yvtj49pfh3fqzqflscm0ek4yzrjhr6cqhn7x89gdxnlykq0xudq5c7334
creation_rules: creation_rules:
- path_regex: hosts/laptop/secrets/laptop.yaml$ - path_regex: hosts/laptop/secrets/secrets.yaml$
key_groups: key_groups:
- age: - age:
- *primary - *primary
- path_regex: hosts/server/secrets/server.yaml$ - path_regex: hosts/server/secrets/secrets.yaml$
key_groups: key_groups:
- age: - age:
- *primary - *primary
+71 -43
View File
@@ -1,11 +1,6 @@
[//]: # (Title: Nixy) [//]: # (This file is autogenerated)
[//]: # (Description: Nixy is a Hyprland NixOS configuration with home-manager, secrets and custom theming all in one place. It's a simple way to manage your system configuration and dotfiles.)
[//]: # (Author: Hadi)
[//]: # (Date: 08/19/24)
[//]: # (Version: v2.1.0)
<div align="center"> <div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" /> <img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/.github/assets/logo.png" width="120px" />
</div> </div>
<br> <br>
@@ -14,20 +9,17 @@
<br> <br>
<div align="center"> <div align="center">
<a href="https://github.com/anotherhadi/nixy">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message=v2.1.0&colorA=181825&colorB=89b4fa&logo=githubactions&logoColor=89b4fa"/>
</a>
<a href="https://github.com/anotherhadi/nixy/stargazers"> <a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=starship&logoColor=89b4fa"> <img src="https://img.shields.io/github/stars/anotherhadi/nixy?color=A594FD&labelColor=0b0b0b&style=for-the-badge&logo=starship&logoColor=A594FD">
</a> </a>
<a href="https://github.com/anotherhadi/nixy/"> <a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=89b4fa&labelColor=181825&style=for-the-badge&logo=github&logoColor=89b4fa"> <img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color=A594FD&labelColor=0b0b0b&style=for-the-badge&logo=github&logoColor=A594FD">
</a> </a>
<a href="https://nixos.org"> <a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=181825&logo=NixOS&logoColor=89b4fa&color=89b4fa"> <img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor=0b0b0b&logo=NixOS&logoColor=A594FD&color=A594FD">
</a> </a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE"> <a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=181825&colorB=89b4fa&logo=unlicense&logoColor=89b4fa"/> <img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA=0b0b0b&colorB=A594FD&logo=unlicense&logoColor=A594FD"/>
</a> </a>
</div> </div>
<br> <br>
@@ -35,58 +27,94 @@
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place. **Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles. It's a simple way to manage your system configuration and dotfiles.
I'm Hadi, a french developer, student in infosec, enthusiastic about nix, golang & blockchains.
This is my own, **keyboard-centric**, and **minimalistic** NixOS configuration.
I enable vim-like keybindings everywhere I can, and I use a lot of custom scripts to make my life easier.
**Nixy key points:**
- Hypr-ecosystem first (hyprland, hyprlock, hyprpanel, hypridle, ...)
- Stylix/base16 themes
- Vim-like keybindings everywhere (hyprland, qutebrowser, nvim, ...)
## Table of Content ## Table of Content
- [Table of Content](#table-of-content) - [Table of Content](#table-of-content)
- [Gallery](#gallery) - [Gallery](#gallery)
- [Architecture](#architecture) - [Architecture](#architecture)
- [Installation](#installation) - [🏠 home](#-home)
- [Documentation](#documentation) - [🐧 nixos](#-nixos)
- [🎨 themes](#-themes)
- [💻 hosts](#-hosts)
- [Installation](#installation)
- [Documentation](#documentation)
## Gallery ## Gallery
![catppuccin1](docs/src/catppuccin/1.png) ![Nixy helper, peaclock](.github/assets/nixy/1.png)
![catppuccin2](docs/src/catppuccin/2.png) ![Qutebrowser, pipes, shell](.github/assets/nixy/2.png)
![catppuccin3](docs/src/catppuccin/3.png) ![nvim, lazygit](.github/assets/nixy/3.png)
![spotify, cava](.github/assets/nixy/4.png)
## Architecture ## Architecture
- 🏠 `home` are the dotfiles and configuration files for the users ### 🏠 home
- 'programs' is a collection of apps configured with home-manager
- 'scripts' is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md)) Those are the dotfiles and configuration files for user-level configuration
- 'system' is some "desktop environment" configuration
- 'wallpapers' are... wallpapers **Subfolders:**
- 💻 `hosts` are the system configuration files
- 'laptop' is my configuration for my laptop with Nvidia that you can copy - `programs` is a collection of apps configured with home-manager
- 'server' is for my homeserver (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`) - `scripts` is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))* - `system` is some "desktop environment" configuration
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
### 🐧 nixos
Those are the system-level configurations. (audio, bluetooth, gpu, bootloader, ...)
### 🎨 themes
Those are the themes used in the system configuration.
Those themes are based on [stylix](https://github.com/danth/stylix).
See avaiable themes in [THEMES.md](docs/THEMES.md)
### 💻 hosts
Those are the host-specific configurations.
Each host contains a `configuration.nix` for system-level configuration, a `home.nix` for user-level configuration, and a `variables.nix` for config wide variables.
## Installation ## Installation
1. Clone the repo
```sh ```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos git clone https://github.com/anotherhadi/nixy ~/.config/nixos
``` ```
- Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file 2. Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file
- Add your `hardware-configuration.nix` to your new host's folder 3. Add your `hardware-configuration.nix` to your new host's folder
- Add your 'nixosConfigurations' inside `flake.nix` (You can edit your hostname one and change the lines containing '# CHANGEME') 4. Add your 'nixosConfigurations' inside `flake.nix`
> [!NOTE] > [!Important]
> I added few `# CHANGEME` comments in the files to help you find what to change. Be sure to check them up.
> You can use `rg "CHANGEME"` to find them all with ripgrep.
> [!TIP]
> When you add new files, don't forget to run `git add .` to add them to the git repository > When you add new files, don't forget to run `git add .` to add them to the git repository
5. Build the system
```sh ```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
``` ```
## Documentation ## Documentation
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own - [THEMES](docs/THEMES.md): How themes work and how to create your own
- [APPS.md](docs/APPS.md): Which apps are installed - [SCRIPTS](docs/SCRIPTS.md): Scripts that are available
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available - [KEYBINDINGS-HYPRLAND](docs/KEYBINDINGS-HYPRLAND.md): Keybindings available in Hyprland
- [KEYBINDINGS.md](docs/KEYBINDINGS.md): Keybindings available in Hyprland - [WALLPAPERS](https://github.com/anotherhadi/nixy-wallpapers): A collection of wallpapers for Nixy.
- [WALLPAPERS.md](docs/WALLPAPERS.md): Preview of every wallpapers available
- [TODO.md](docs/TODO.md): What's next (feel free to contribute) - [TODO](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute - [CONTRIBUTING](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License - [LICENSE](LICENSE): MIT License
-56
View File
@@ -1,56 +0,0 @@
# Apps and services
*non-exhaustive lists*
## Laptop
The laptop configuration is used by an Omen 16 laptop w/ nvidia and an amd gpu running NixOS.
The configurations files can be found in the `hosts/laptop` directory.
| Category | Name |
| --------------------------------------- | -------------- |
| WM | Hyprland |
| | hyprlock |
| | hyprpaper |
| | hypridle |
| | hyprcursor |
| | wlogout |
| Bar | waybar |
| Terminal | kitty |
| Shell | zsh |
| | tmux |
| | starship |
| | bat |
| | eza |
| | zoxide |
| | fzf |
| Editor | neovim(nixvim) |
| File manager | lf |
| | thunar |
| Browser | qutebrowser |
| Music | spicetify |
| Notifications | dunst |
| Launcher | wofi |
| DM | tuigreet |
| Secrets | sops-nix |
| Misc | lazygit |
| | neofetch |
| | cava |
| See [hosts/laptop](../hosts/laptop/)... | |
## Server
The server configuration is used by a home server running NixOS.
The configurations files can be found in the `hosts/server` directory.
I mainly use it for self-hosting websites and services such as Nextcloud, Vaultwarden, ...
I exposed some services to the internet using a reverse proxy (Nginx) and cloudflare-dyndns, others are accessed through a tailscale network
### Apps
- Nextcloud
- Vaultwarden
- Adguard Home
- Uptime Kuma
- "Jackflix"
- Jellyfin, Transmission, *arr
- See [hosts/server](../hosts/server/)...
-3
View File
@@ -9,9 +9,6 @@ The process is straight-forward.
- Write your changes (new theme, bug fixes, task in to-do, ...). - Write your changes (new theme, bug fixes, task in to-do, ...).
- Create a Pull Request against the main branch of Nixy. - Create a Pull Request against the main branch of Nixy.
> [!TIP]
> When wallpapers are added, run `./docs/scripts/compress_png.sh` and `./docs/scripts/create_preview_wallpapers.sh`
> [!TIP] > [!TIP]
> To update the README, change the `./docs/src/README_template.md` and run `./docs/scripts/create_readme.sh` > To update the README, change the `./docs/src/README_template.md` and run `./docs/scripts/create_readme.sh`
+46
View File
@@ -0,0 +1,46 @@
[//]: # (This file is autogenerated)
# Keybindings for Hyprland
> [!NOTE]
> SUPER is the windows key by default
| Description | Keybinding |
| -- | -- |
| Switch Workspace | SUPER + {Number} |
| Move app to Workspace | SHIFT + SUPER + {Number} |
| Kitty | SUPER + RETURN |
| Thunar | SUPER + E |
| Qutebrowser | SUPER + B |
| Bitwarden | SUPER + K |
| Lock | SUPER + L |
| Powermenu | SUPER + X |
| Launcher | SUPER + SPACE |
| Toggle HyprFocus | SHIFT + SUPER + SPACE |
| Close window | SUPER + Q |
| Toggle Floating | SUPER + T |
| Toggle Fullscreen | SUPER + F |
| Move focus left | SUPER + left |
| Move focus Right | SUPER + right |
| Move focus Up | SUPER + up |
| Move focus Down | SUPER + down |
| Focus previous monitor | SHIFT + SUPER + up |
| Focus next monitor | SHIFT + SUPER + down |
| Add to master | SHIFT + SUPER + left |
| Remove from master | SHIFT + SUPER + right |
| Screenshot window | SUPER + PRINT |
| Screenshot monitor | PRINT |
| Screenshot region | SHIFT + SUPER + PRINT |
| Screenshot region then edit | ALTPRINT |
| Search on internet with wofi | SHIFT + SUPER + S |
| Clipboard picker with wofi | SHIFT + SUPER + C |
| Emoji picker with wofi | SHIFT + SUPER + E |
| Toggle night shift | SUPER + F2 |
| Toggle night shift | SUPER + F3 |
| Move Window (mouse) | SUPER + mouse:272 |
| Resize Window (mouse) | SUPER + R |
| Toggle Mute | XF86AudioMute |
| Lock when closing Lid | switch:Lid Switch |
| Sound Up | XF86AudioRaiseVolume |
| Sound Down | XF86AudioLowerVolume |
| Brightness Up | XF86MonBrightnessUp |
| Brightness Down | XF86MonBrightnessDown |
-38
View File
@@ -1,38 +0,0 @@
# Keybindings
The list of the keybindings working on Hyprland:
| Description | Keybinding |
|-----------------------------|--------------------------|
| Switch Workspace | SUPER + {Number} |
| Move app to Workspace | SHIFT + SUPER + {Number} |
| Kitty | SUPER + RETURN |
| Thunar | SUPER + E |
| Qutebrowser | SUPER + B |
| Bitwarden | SUPER + K |
| Peaclock | SUPER + C |
| Lock | SUPER + L |
| Powermenu | SUPER + X |
| Launcher | SUPER + SPACE |
| Close window | SUPER + Q |
| Toggle Floating | SUPER + T |
| Toggle Fullscreen | SUPER + F |
| Move focus left | SUPER + left |
| Move focus Right | SUPER + right |
| Move focus Up | SUPER + up |
| Move focus Down | SUPER + down |
| Screenshot window | SUPER + PRINT |
| Screenshot monitor | PRINT |
| Screenshot region | SHIFT + SUPER + PRINT |
| Screenshot region then edit | ALT PRINT |
| Turn off night shift | SUPER + F2 |
| Turn on night shift | SUPER + F3 |
| Choose sound output | SUPER + F5 |
| Move Window (mouse) | SUPER + mouse:272 |
| Resize Window (mouse) | SUPER + R |
| Toggle Mute | XF86AudioMute |
| Lock when closing Lid | switch:Lid Switch |
| Sound Up | XF86AudioRaiseVolume |
| Sound Down | XF86AudioLowerVolume |
| Brightness Up | XF86MonBrightnessUp |
| Brightness Down | XF86MonBrightnessDown |
+68 -39
View File
@@ -1,59 +1,88 @@
[//]: # (This file is autogenerated)
# Scripts # Scripts
Scripts are located in the `home/scripts` folder. Home-manager add those in the path. Scripts are located in the 'home/scripts' folder. Home-manager add those in the user's path.
## Nix/NixOs shortcuts ## Brightness
> [!TIP] This module provides a set of scripts to control the brightness of the screen.
> The `hostname` variable in `hosts/yourhost/variables.nix` should be also the name of the `nixosConfiguration` in `flake.nix` file.
- `nixy` # UI - `brightness-up` increases the brightness by 5%.
- `nixy rebuild` - `brightness-down` decreases the brightness by 5%.
- `nixy update` - `brightness-set [value]` sets the brightness to the given value.
- `nixy upgrade` - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
- `nixy gc` # garbage collection
- `nixy cb` # clean boot menu
## Brightness control
- `brightness-up`
- `brightness-down`
- `brightness-change <up/down> <increment>`
## Sound control
- `sound-up`
- `sound-down`
- `sound-toggle`
- `sound-output`
- `sound-change [up/down/mute] <increment>`
## Caffeine ## Caffeine
Caffeine is a simple script that toggles hypridle (disable suspend & screenlock). Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
- `caffeine` # Toggle caffeine - `caffeine-status` - Check if hypridle is running. (0/1)
- `caffeine-status` # Return active/inactive - `caffeine-status-icon` - Check if hypridle is running. (icon)
- `caffeine` - Toggle hypridle.
## Night-Shift ## Hyprfocus
Blue light filter, using wlsunset A simple script to toggle focus on few windows in Hyprland.
(disable gaps, border, shadow, opacity, etc.)
- `night-shift` # Toggle night shift - `hyprfocus-on` - Enable hyprfocus.
- `night-shift-status` # Return active/inactive - `hyprfocus-off` - Disable hyprfocus.
- `night-shift-on` - `hyprfocus-toggle` - Toggle hyprfocus.
- `night-shift-off`
## Hyprpanel
Quick scripts to toggle, reload and kill hyprpanel.
- `hyprpanel-toggle` - Toggle hyprpanel.
- `hyprpanel-reload` - Reload hyprpanel.
- `hyprpanel-kill` - Kill hyprpanel.
## Nerdfont FZF ## Nerdfont FZF
Nerdfont fzf is a quick way to search for nerdfont icons locally. This module provides a script to search for Nerd Fonts icons using fzf.
It will copy the selected icon to the clipboard.
- `nerdfont-fzf` - `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
## Compress/Extract ## Night-Shift
Some shortcuts to compress and extract files. Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system.
- `night-shift-on` activates Night-Shift.
- `night-shift-off` deactivates Night-Shift.
- `night-shift` toggles Night-Shift.
- `night-shift-status` checks if Night-Shift is active. (0/1)
- `night-shift-status-icon` checks if Night-Shift is active. (icon)
## Nixy
Nixy is a simple script that I use to manage my NixOS system. It's a simple script that provides a menu to rebuild, upgrade, update, collect garbage, clean boot menu, etc.
- `nixy` - UI wizard to manage the system.
- `nixy rebuild` - Rebuild the system.
- `nixy ...` - ... see the script for more commands.
## Screenshot
This module provides a script to take screenshots using `hyprshot` and `swappy`.
- `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard.
## Sound
This module provides a set of scripts to control the volume of the default audio sink using `wpctl`.
- `sound-up` increases the volume by 5%.
- `sound-down` decreases the volume by 5%.
- `sound-set [value]` sets the volume to the given value.
- `sound-toggle` toggles the mute state of the default audio sink.
## System
Usefull quick scripts
- `menu` - Open wofi with drun mode.
- `powermenu` - Open power dropdown menu.
- `lock` - Lock the screen.
- `compress` ...
- `extract` ...
+7 -18
View File
@@ -1,7 +1,7 @@
# Themes # Themes
Themes are defined in `hosts/themes`. Those themes define the colors, fonts, icons, etc, used by Hyprland and the apps/programs installed. Themes are defined in `themes`. Those themes define the colors, fonts, icons, etc, used by Hyprland and the apps/programs installed.
You can change the selected theme by changing the import statement of your host's variables.nix file. You can change the selected theme by changing the import statement of your host's configuration.nix file.
> [!TIP] > [!TIP]
> To apply the theme to DuckDuckGo, follow the instructions in `$HOME/.duckduckgo-colorscheme.js` > To apply the theme to DuckDuckGo, follow the instructions in `$HOME/.duckduckgo-colorscheme.js`
@@ -9,24 +9,13 @@ You can change the selected theme by changing the import statement of your host'
## Create your theme ## Create your theme
Create a copy of one of the existing themes and change the variables. Create a copy of one of the existing themes and change the variables.
Wallpapers are loaded from the `home/wallpapers` folder. Wallpapers are loaded from the [nixy-wallpapers](https://github.com/anotherhadi/nixy-wallpapers) repo.
## Gallery ## Gallery
### Nixy ### Nixy
![nixy1](src/nixy/1.png) ![nixy1](../.github/assets/nixy/1.png)
![nixy2](src/nixy/2.png) ![nixy2](../.github/assets/nixy/2.png)
![nixy3](src/nixy/3.png) ![nixy3](../.github/assets/nixy/3.png)
![nixy4](../.github/assets/nixy/4.png)
### Catppuccin
![catppuccin1](src/catppuccin/1.png)
![catppuccin2](src/catppuccin/2.png)
![catppuccin3](src/catppuccin/3.png)
### Windows
![windows1](src/windows/1.png)
![windows2](src/windows/2.png)
![windows3](src/windows/3.png)
+6 -27
View File
@@ -2,33 +2,12 @@
feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md)) feel free to contribute <3 ([CONTRIBUTING.md](CONTRIBUTING.md))
- [ ] Nixy - [!] Qutebrowser Bitwarden integration (I need this.)
- [ ] Themes
- [ ] Qutebrowser
- [ ] !!! Bitwarden integration (I need this.)
- [ ] Hyprland
- [ ] Implement Hyprcursor
echo "Compresing png files..."
- [ ] wofi: popin
- [ ] wlogout: fade in
- [ ] Fix screenshots (screenshot region's border shows up in the screenshot, hyprshot jq error?)
- [ ] Hyprlock themes
- [ ] Hypridle fix: suspend not working?
- [ ] Nixvim - [ ] Nixvim
- [ ] Keymaps: - [ ] Change headings foreground
- Trouble - [ ] neotest golang
- Tagbar (actually not working) - [ ] nvim dap
- [ ] Disable background color for headlines.nvim for titles
## Server - [ ] Tofi configuration
- [ ] OS Hardening with nix-mineral
- [ ] Server configuration is actually broken, need to update with the new modules
- [ ] Jackflix V2
- Backup Radarr, Prowlarr, Sonarr config
- Take a look into buildarr
- [ ] Bitcoin-git: to test
- [ ] Ntfy auth file
- [ ] Secrets mode 0444: not secure
-39
View File
@@ -1,39 +0,0 @@
# Wallpapers
Wallpapers can be found in the `/home/wallpapers` folder.
| Name | Preview |
|---------------------|----------------------------------------------------------------|
| astronaut.png | ![astronaut.png](../home/wallpapers/astronaut.png) |
| aurore.png | ![aurore.png](../home/wallpapers/aurore.png) |
| barcode.png | ![barcode.png](../home/wallpapers/barcode.png) |
| cat-leaves.png | ![cat-leaves.png](../home/wallpapers/cat-leaves.png) |
| city.png | ![city.png](../home/wallpapers/city.png) |
| cloud.png | ![cloud.png](../home/wallpapers/cloud.png) |
| clouds2.png | ![clouds2.png](../home/wallpapers/clouds2.png) |
| clouds.png | ![clouds.png](../home/wallpapers/clouds.png) |
| coffee.png | ![coffee.png](../home/wallpapers/coffee.png) |
| dark_cloud.png | ![dark_cloud.png](../home/wallpapers/dark_cloud.png) |
| dark.png | ![dark.png](../home/wallpapers/dark.png) |
| fuji-dark.png | ![fuji-dark.png](../home/wallpapers/fuji-dark.png) |
| fuji-light.png | ![fuji-light.png](../home/wallpapers/fuji-light.png) |
| galaxy.png | ![galaxy.png](../home/wallpapers/galaxy.png) |
| house-cloud.png | ![house-cloud.png](../home/wallpapers/house-cloud.png) |
| key.png | ![key.png](../home/wallpapers/key.png) |
| lavender-cat.png | ![lavender-cat.png](../home/wallpapers/lavender-cat.png) |
| lofi-computer.png | ![lofi-computer.png](../home/wallpapers/lofi-computer.png) |
| lofi-urban.png | ![lofi-urban.png](../home/wallpapers/lofi-urban.png) |
| magma.png | ![magma.png](../home/wallpapers/magma.png) |
| mountains-black.png | ![mountains-black.png](../home/wallpapers/mountains-black.png) |
| mountains.png | ![mountains.png](../home/wallpapers/mountains.png) |
| nix.png | ![nix.png](../home/wallpapers/nix.png) |
| problems.png | ![problems.png](../home/wallpapers/problems.png) |
| sea2.png | ![sea2.png](../home/wallpapers/sea2.png) |
| sea.png | ![sea.png](../home/wallpapers/sea.png) |
| space2.png | ![space2.png](../home/wallpapers/space2.png) |
| space.png | ![space.png](../home/wallpapers/space.png) |
| street.png | ![street.png](../home/wallpapers/street.png) |
| sun.png | ![sun.png](../home/wallpapers/sun.png) |
| tokyo.png | ![tokyo.png](../home/wallpapers/tokyo.png) |
| train.png | ![train.png](../home/wallpapers/train.png) |
| windows.png | ![windows.png](../home/wallpapers/windows.png) |
-20
View File
@@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Compress png files in ./docs/src and ./home/wallpapers
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
# Main images
for file in ./docs/src/*.png; do
optipng "$file"
done
# Theme's images
for file in ./docs/src/*/*.png; do
optipng "$file"
done
# Wallpapers
for file in ./home/wallpapers/*.png; do
optipng "$file"
done
-24
View File
@@ -1,24 +0,0 @@
#!/usr/bin/env bash
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
# Create WALLPAPERS.md to preview wallpapers in ./home/wallpapers
WALLPAPERS_FOLDER="./home/wallpapers"
WALLPAPERS_MD="./docs/WALLPAPERS.md"
[[ -d "$WALLPAPERS_FOLDER" ]] || (echo "Wallpapers folder not found" && exit 1)
echo "# Wallpapers" >"$WALLPAPERS_MD"
echo "" >>"$WALLPAPERS_MD"
echo "Wallpapers can be found in the \`/home/wallpapers\` folder." >>"$WALLPAPERS_MD"
echo "" >>"$WALLPAPERS_MD"
echo "| Name | Preview |" >>"$WALLPAPERS_MD"
echo "| -- | -- |" >>"$WALLPAPERS_MD"
for file in "$WALLPAPERS_FOLDER"/*.png; do
filename=$(basename "$file")
echo "| $filename | ![$filename](../home/wallpapers/$filename) |" >>"$WALLPAPERS_MD"
done
pandoc -t commonmark_x "$WALLPAPERS_MD" -o "/tmp/wallpapers.md"
mv "/tmp/wallpapers.md" "$WALLPAPERS_MD"
-27
View File
@@ -1,27 +0,0 @@
#!/usr/bin/env bash
# Create the README.md file from the docs/src/README_template.md file
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
README_FILE="./README.md"
header=$(cat "./docs/src/header.md")
table_of_content=$(md-table-of-contents ./docs/src/README_template.md) # https://github.com/anotherhadi/md-table-of-contents
version=$(git describe --tags --abbrev=0)
readme_content=$(cat "./docs/src/README_template.md")
description=$(curl -s https://api.github.com/repos/anotherhadi/nixy | jq .description)
description="${description%\"}"
description="${description#\"}"
header=${header//\{date\}/$(date '+%D')}
header=${header//\{primarycolor\}/89b4fa}
header=${header//\{backgroundcolor\}/181825}
header=${header//\{version\}/$version}
header=${header//\{description\}/$description}
readme_content=${readme_content//\{md_table_of_content\}/$table_of_content}
echo "$header" >"$README_FILE"
echo "$readme_content" >>"$README_FILE"
sed 's/\r//' "$README_FILE" >"/tmp/readme.md"
mv "/tmp/readme.md" "$README_FILE"
-26
View File
@@ -1,26 +0,0 @@
#!/usr/bin/env bash
[[ -d "./docs" ]] || (echo "Folder ./docs not found" && exit 1)
TAG=$(git describe --tags --abbrev=0)
echo "Current tag: $TAG"
read -rp "Enter the new tag name: " NEW_TAG
read -rp "Do you want to compress the png files? [y/N]: " COMPRESS_PNG
if [[ "$COMPRESS_PNG" == "y" || "$COMPRESS_PNG" == "Y" ]]; then
echo "Compresing png files..."
bash ./docs/scripts/compress_png.sh
fi
echo "Creating wallpapers preview..."
bash ./docs/scripts/create_preview_wallpapers.sh
echo "Creating README.md..."
bash ./docs/scripts/create_readme.sh
echo "Creating keybindings.md..."
bash ./docs/scripts/keybindings_to_markdown.sh
git add .
git commit -m "Release $NEW_TAG"
git tag -a "$NEW_TAG" -m "Release $NEW_TAG"
git push origin "$NEW_TAG"
-42
View File
@@ -1,42 +0,0 @@
#!/usr/bin/env bash
[ "$1" = "" ] && echo "Usage: $0 <theme_name>" && exit 1
theme_name=$1
# Switch to workspace 1
sleep 2
# Step 1
kitty --class peaclock peaclock &
sleep 1
menu &
sleep 1
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "1.png" -d
sleep 2
pkill peaclock
menu
sleep 2
# Step 2
kitty cmatrix &
sleep 1
kitty &
sleep 1
qutebrowser &
sleep 3
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "2.png" -d
sleep 2
pkill cmatrix
pkill --newest qutebrowser ""
pkill --newest kitty
sleep 2
# Step 3
kitty cava &
sleep 1
spotify &
sleep 10
brightness-down
sleep 1
hyprshot -m "output" -m "active" -o "$HOME/.config/nixos/docs/src/$theme_name" -f "3.png" -d
sleep 2
-55
View File
@@ -1,55 +0,0 @@
**Nixy** is a **Hyprland** NixOS configuration with **home-manager**, **secrets**, and **custom theming** all in one place.
It's a simple way to manage your system configuration and dotfiles.
## Table of Content
{md_table_of_content}
## Gallery
![catppuccin1](docs/src/catppuccin/1.png)
![catppuccin2](docs/src/catppuccin/2.png)
![catppuccin3](docs/src/catppuccin/3.png)
## Architecture
- 🏠 `home` are the dotfiles and configuration files for the users
- 'programs' is a collection of apps configured with home-manager
- 'scripts' is a folder full of bash scripts (see [SCRIPTS.md](docs/SCRIPTS.md))
- 'system' is some "desktop environment" configuration
- 'wallpapers' are... wallpapers
- 💻 `hosts` are the system configuration files
- 'laptop' is my configuration for my laptop with Nvidia that you can copy
- 'server' is for my homeserver (w/nextcloud, nginx, vaultwarden, ... look `hosts/server`)
- 'themes' contains all the *themes* available *(see [THEMES.md](docs/THEMES.md))*
- 'modules' are some nix modules that you can import (Nvidia, prime, fonts, ...)
## Installation
```sh
git clone https://github.com/anotherhadi/nixy ~/.config/nixos
```
- Copy the `hosts/laptop` folder, rename it to your system name, and change the variables inside the `variables.nix` file
- Add your `hardware-configuration.nix` to your new host's folder
- Add your 'nixosConfigurations' inside `flake.nix` (You can edit your hostname one and change the lines containing '# CHANGEME')
> [!NOTE]
> When you add new files, don't forget to run `git add .` to add them to the git repository
```sh
sudo nixos-rebuild switch --flake ~/.config/nixos#yourhostname
```
## Documentation
- [THEMES.md](docs/THEMES.md): How themes work and how to create your own
- [APPS.md](docs/APPS.md): Which apps are installed
- [SCRIPTS.md](docs/SCRIPTS.md): Scripts that are available
- [KEYBINDINGS.md](docs/KEYBINDINGS.md): Keybindings available in Hyprland
- [WALLPAPERS.md](docs/WALLPAPERS.md): Preview of every wallpapers available
- [TODO.md](docs/TODO.md): What's next (feel free to contribute)
- [CONTRIBUTING.md](docs/CONTRIBUTING.md): How to contribute
- [LICENSE](LICENSE): MIT License
-33
View File
@@ -1,33 +0,0 @@
[//]: # (Title: Nixy)
[//]: # (Description: {description})
[//]: # (Author: Hadi)
[//]: # (Date: {date})
[//]: # (Version: {version})
<div align="center">
<img src="https://raw.githubusercontent.com/anotherhadi/nixy/main/docs/src/logo.png" width="100px" />
</div>
<br>
# Nixy
<br>
<div align="center">
<a href="https://github.com/anotherhadi/nixy">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=Version&message={version}&colorA={backgroundcolor}&colorB={primarycolor}&logo=githubactions&logoColor={primarycolor}"/>
</a>
<a href="https://github.com/anotherhadi/nixy/stargazers">
<img src="https://img.shields.io/github/stars/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=starship&logoColor={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/">
<img src="https://img.shields.io/github/repo-size/anotherhadi/nixy?color={primarycolor}&labelColor={backgroundcolor}&style=for-the-badge&logo=github&logoColor={primarycolor}">
</a>
<a href="https://nixos.org">
<img src="https://img.shields.io/badge/NixOS-unstable-blue.svg?style=for-the-badge&labelColor={backgroundcolor}&logo=NixOS&logoColor={primarycolor}&color={primarycolor}">
</a>
<a href="https://github.com/anotherhadi/nixy/blob/main/LICENSE">
<img src="https://img.shields.io/static/v1.svg?style=for-the-badge&label=License&message=MIT&colorA={backgroundcolor}&colorB={primarycolor}&logo=unlicense&logoColor={primarycolor}"/>
</a>
</div>
<br>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

-1
View File
@@ -1 +0,0 @@
8c00e379ddd7f89e4bbf9f381a5721d980c8026f
-1
View File
@@ -1 +0,0 @@
62b52ad02a886c19a8cfe1ea17e8aaad50f23632
Generated
+635 -109
View File
File diff suppressed because it is too large Load Diff
+17 -26
View File
@@ -7,6 +7,7 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -15,7 +16,6 @@
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
spicetify-nix = { spicetify-nix = {
url = "github:Gerg-L/spicetify-nix"; url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@@ -25,41 +25,32 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; hyprpanel.url = "github:Jas-SinghFSU/HyprPanel";
nixy-wallpapers = {
url = "github:anotherhadi/nixy-wallpapers";
flake = false;
};
stylix.url = "github:danth/stylix";
apple-fonts.url = "github:Lyndeno/apple-fonts.nix";
hyprswitch.url = "github:h3rmt/hyprswitch/release";
}; };
outputs = inputs@{ nixpkgs, ... }: { outputs = inputs@{ nixpkgs, ... }: {
nixosConfigurations = { nixosConfigurations = {
nixy = # CHANGEME
nixy = nixpkgs.lib.nixosSystem { # CHANGEME nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
{ _module.args = { inherit inputs; }; } {
inputs.nixos-hardware.nixosModules.omen-16-n0280nd # CHANGEME nixpkgs.overlays = [ inputs.hyprpanel.overlay ];
_module.args = { inherit inputs; };
}
inputs.nixos-hardware.nixosModules.omen-16-n0005ne # CHANGEME
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
inputs.stylix.nixosModules.stylix
./hosts/laptop/configuration.nix # CHANGEME ./hosts/laptop/configuration.nix # CHANGEME
]; ];
}; };
jack = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
inputs.sops-nix.nixosModules.sops
./hosts/server/configuration.nix
inputs.home-manager.nixosModules.home-manager
{
nixpkgs.overlays = [ inputs.nurpkgs.overlay ];
_module.args = { inherit inputs; };
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."hadi" = import ./hosts/server/home.nix;
extraSpecialArgs = { inherit inputs; };
};
}
];
};
}; };
}; };
} }
-9
View File
@@ -1,9 +0,0 @@
{
programs.btop = {
enable = true;
settings = {
color_theme = "Default";
theme_background = false;
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{ config, ... }: {
programs.cava = {
enable = true;
settings = {
general.framerate = 60;
smoothing.noise_reduction = 88;
color = {
background = "'#${config.var.theme.colors.bg}'";
foreground = "'#${config.var.theme.colors.accent}'";
};
};
};
}
+1 -4
View File
@@ -1,4 +1,4 @@
{ pkgs, config, ... }: { { pkgs, ... }: {
home.packages = with pkgs; [ neofetch ]; home.packages = with pkgs; [ neofetch ];
xdg.configFile."neofetch/ascii.txt".text = '' xdg.configFile."neofetch/ascii.txt".text = ''
@@ -109,9 +109,6 @@
song_format="%artist% - %album% - %title%" song_format="%artist% - %album% - %title%"
song_shorthand="off" song_shorthand="off"
mpc_args=() mpc_args=()
colors=(${toString config.var.theme.colors.accentNumber} 1 ${
toString config.var.theme.colors.accentNumber
} ${toString config.var.theme.colors.accentNumber} 7)
bold="on" bold="on"
underline_enabled="on" underline_enabled="on"
underline_char="-" underline_char="-"
+4 -4
View File
@@ -1,4 +1,4 @@
{ pkgs, config, ... }: { pkgs, ... }:
let let
nerdfetch = pkgs.writeShellScriptBin "nerdfetch" '' nerdfetch = pkgs.writeShellScriptBin "nerdfetch" ''
ostype="$(uname)" ostype="$(uname)"
@@ -345,9 +345,9 @@ let
## USER VARIABLES -- YOU CAN CHANGE THESE ## USER VARIABLES -- YOU CAN CHANGE THESE
lc="$reset$bold''$${config.var.theme.colors.accentName}" # labels lc="$reset$bold$magenta" # labels
nc="$reset$bold''$${config.var.theme.colors.accentName}" # labels nc="$reset$bold$magenta" # labels
hn="$reset$bold''$${config.var.theme.colors.accentName}" # labels hn="$reset$bold$magenta" # labels
ic="$reset$white" # info ic="$reset$white" # info
c0="$reset$grey" # first color c0="$reset$grey" # first color
c1="$reset$white" # second color c1="$reset$white" # second color
+7 -3
View File
@@ -1,8 +1,12 @@
{ config, ... }: { { config, ... }:
let
username = config.var.git.username;
email = config.var.git.email;
in {
programs.git = { programs.git = {
enable = true; enable = true;
userName = config.var.git.username; userName = username;
userEmail = config.var.git.email; userEmail = email;
ignores = [ ignores = [
".cache/" ".cache/"
".DS_Store" ".DS_Store"
+12 -32
View File
@@ -1,6 +1,15 @@
{ config, pkgs, ... }: { {
programs.kitty = { programs.kitty = {
enable = true; enable = true;
keybindings = {
# Reset existing mappings
"ctrl+alt+tab" = "next_tab";
"ctrl+alt+shift+tab" = "previous_tab";
# Send Ctrl Tab and Ctrl + Shift + Tab for Tmux navigation
"ctrl+tab" = "send_text all \\x1b[27;5;9~";
"ctrl+shift+tab" = "send_text all \\x1b[27;6;9~";
"alt+tab" = "send_text all \\x1b[27;3;9~";
};
settings = { settings = {
scrollback_lines = 10000; scrollback_lines = 10000;
initial_window_width = 1200; initial_window_width = 1200;
@@ -10,39 +19,10 @@
confirm_os_window_close = "0"; confirm_os_window_close = "0";
remember_window_size = "no"; remember_window_size = "no";
disable_ligatures = "never"; disable_ligatures = "never";
shell = "${pkgs.tmux}/bin/tmux";
url_style = "curly"; url_style = "curly";
cursor_shape = "Underline"; cursor_shape = "Underline";
cursor_underline_thickness = config.var.theme.border-size; cursor_underline_thickness = 3;
window_padding_width = config.var.theme.gaps-in; window_padding_width = 10;
# Font
font_family = config.var.theme.font-mono;
font_size = config.var.theme.font-size;
# Colors
background = "#" + config.var.theme.colors.bg;
url_color = "#" + config.var.theme.colors.accent;
color0 = "#" + config.var.theme.colors.c0;
color8 = "#" + config.var.theme.colors.c8;
color1 = "#" + config.var.theme.colors.c1;
color9 = "#" + config.var.theme.colors.c9;
color2 = "#" + config.var.theme.colors.c2;
color10 = "#" + config.var.theme.colors.c10;
color3 = "#" + config.var.theme.colors.c3;
color11 = "#" + config.var.theme.colors.c11;
color4 = "#" + config.var.theme.colors.c4;
color12 = "#" + config.var.theme.colors.c12;
color5 = "#" + config.var.theme.colors.c5;
color13 = "#" + config.var.theme.colors.c13;
color6 = "#" + config.var.theme.colors.c6;
color14 = "#" + config.var.theme.colors.c14;
color7 = "#" + config.var.theme.colors.c7;
color15 = "#" + config.var.theme.colors.c15;
cursor = "#" + config.var.theme.colors.fg;
cursor_text_color = "#" + config.var.theme.colors.bg;
selection_foreground = "#" + config.var.theme.colors.accentFg;
selection_background = "#" + config.var.theme.colors.accent;
}; };
}; };
} }
+22
View File
@@ -0,0 +1,22 @@
{ config, lib, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
in {
programs.lazygit = {
enable = true;
settings = lib.mkForce {
gui = {
theme = {
activeBorderColor = [ accent "bold" ];
inactiveBorderColor = [ muted ];
};
showListFooter = false;
showRandomTip = false;
showCommandLog = false;
showBottomLine = false;
nerdFontsVersion = "3";
};
};
};
}
-174
View File
@@ -1,174 +0,0 @@
# vim:ft=dircolors
# (This is not a dircolors file but it helps to highlight colors and comments)
# default values from dircolors
# (entries with a leading # are not implemented in lf)
# #no 00 # NORMAL
# fi 00 # FILE
# #rs 0 # RESET
# di 01;34 # DIR
# ln 01;36 # LINK
# #mh 00 # MULTIHARDLINK
# pi 40;33 # FIFO
# so 01;35 # SOCK
# #do 01;35 # DOOR
# bd 40;33;01 # BLK
# cd 40;33;01 # CHR
# or 40;31;01 # ORPHAN
# #mi 00 # MISSING
# su 37;41 # SETUID
# sg 30;43 # SETGID
# #ca 30;41 # CAPABILITY
# tw 30;42 # STICKY_OTHER_WRITABLE
# ow 34;42 # OTHER_WRITABLE
# st 37;44 # STICKY
# ex 01;32 # EXEC
# default values from lf (with matching order)
# ln 01;36 # LINK
# or 31;01 # ORPHAN
# tw 01;34 # STICKY_OTHER_WRITABLE
# ow 01;34 # OTHER_WRITABLE
# st 01;34 # STICKY
# di 01;34 # DIR
# pi 33 # FIFO
# so 01;35 # SOCK
# bd 33;01 # BLK
# cd 33;01 # CHR
# su 01;32 # SETUID
# sg 01;32 # SETGID
# ex 01;32 # EXEC
# fi 00 # FILE
# file types (with matching order)
ln 01;36 # LINK
or 31;01 # ORPHAN
tw 34 # STICKY_OTHER_WRITABLE
ow 34 # OTHER_WRITABLE
st 01;34 # STICKY
di 01;34 # DIR
pi 33 # FIFO
so 01;35 # SOCK
bd 33;01 # BLK
cd 33;01 # CHR
su 01;32 # SETUID
sg 01;32 # SETGID
ex 01;32 # EXEC
fi 00 # FILE
# archives or compressed (dircolors defaults)
*.tar 01;31
*.tgz 01;31
*.arc 01;31
*.arj 01;31
*.taz 01;31
*.lha 01;31
*.lz4 01;31
*.lzh 01;31
*.lzma 01;31
*.tlz 01;31
*.txz 01;31
*.tzo 01;31
*.t7z 01;31
*.zip 01;31
*.z 01;31
*.dz 01;31
*.gz 01;31
*.lrz 01;31
*.lz 01;31
*.lzo 01;31
*.xz 01;31
*.zst 01;31
*.tzst 01;31
*.bz2 01;31
*.bz 01;31
*.tbz 01;31
*.tbz2 01;31
*.tz 01;31
*.deb 01;31
*.rpm 01;31
*.jar 01;31
*.war 01;31
*.ear 01;31
*.sar 01;31
*.rar 01;31
*.alz 01;31
*.ace 01;31
*.zoo 01;31
*.cpio 01;31
*.7z 01;31
*.rz 01;31
*.cab 01;31
*.wim 01;31
*.swm 01;31
*.dwm 01;31
*.esd 01;31
# image formats (dircolors defaults)
*.jpg 01;35
*.jpeg 01;35
*.mjpg 01;35
*.mjpeg 01;35
*.gif 01;35
*.bmp 01;35
*.pbm 01;35
*.pgm 01;35
*.ppm 01;35
*.tga 01;35
*.xbm 01;35
*.xpm 01;35
*.tif 01;35
*.tiff 01;35
*.png 01;35
*.svg 01;35
*.svgz 01;35
*.mng 01;35
*.pcx 01;35
*.mov 01;35
*.mpg 01;35
*.mpeg 01;35
*.m2v 01;35
*.mkv 01;35
*.webm 01;35
*.ogm 01;35
*.mp4 01;35
*.m4v 01;35
*.mp4v 01;35
*.vob 01;35
*.qt 01;35
*.nuv 01;35
*.wmv 01;35
*.asf 01;35
*.rm 01;35
*.rmvb 01;35
*.flc 01;35
*.avi 01;35
*.fli 01;35
*.flv 01;35
*.gl 01;35
*.dl 01;35
*.xcf 01;35
*.xwd 01;35
*.yuv 01;35
*.cgm 01;35
*.emf 01;35
*.ogv 01;35
*.ogx 01;35
# audio formats (dircolors defaults)
*.aac 00;36
*.au 00;36
*.flac 00;36
*.m4a 00;36
*.mid 00;36
*.midi 00;36
*.mka 00;36
*.mp3 00;36
*.mpc 00;36
*.ogg 00;36
*.ra 00;36
*.wav 00;36
*.oga 00;36
*.opus 00;36
*.spx 00;36
*.xspf 00;36
-361
View File
@@ -1,361 +0,0 @@
# vim:ft=conf
# These examples require Nerd Fonts or a compatible font to be used.
# See https://www.nerdfonts.com for more information.
# default values from lf (with matching order)
# ln l # LINK
# or l # ORPHAN
# tw t # STICKY_OTHER_WRITABLE
# ow d # OTHER_WRITABLE
# st t # STICKY
# di d # DIR
# pi p # FIFO
# so s # SOCK
# bd b # BLK
# cd c # CHR
# su u # SETUID
# sg g # SETGID
# ex x # EXEC
# fi - # FILE
# file types (with matching order)
ln  # LINK
or  # ORPHAN
tw t # STICKY_OTHER_WRITABLE
ow  # OTHER_WRITABLE
st t # STICKY
di  # DIR
pi p # FIFO
so s # SOCK
bd b # BLK
cd c # CHR
su u # SETUID
sg g # SETGID
ex  # EXEC
fi  # FILE
# file extensions (vim-devicons)
*.styl 
*.sass 
*.scss 
*.htm 
*.html 
*.slim 
*.haml 
*.ejs 
*.css 
*.less 
*.md 
*.mdx 
*.markdown 
*.rmd 
*.json 
*.webmanifest 
*.js 
*.mjs 
*.jsx 
*.rb 
*.gemspec 
*.rake 
*.php 
*.py 
*.pyc 
*.pyo 
*.pyd 
*.coffee 
*.mustache 
*.hbs 
*.conf 
*.ini 
*.yml 
*.yaml 
*.toml 
*.bat 
*.mk 
*.jpg 
*.jpeg 
*.bmp 
*.png 
*.webp 
*.gif 
*.ico 
*.twig 
*.cpp 
*.c++ 
*.cxx 
*.cc 
*.cp 
*.c 
*.cs 󰌛
*.h 
*.hh 
*.hpp 
*.hxx 
*.hs 
*.lhs 
*.nix 
*.lua 
*.java 
*.sh 
*.fish 
*.bash 
*.zsh 
*.ksh 
*.csh 
*.awk 
*.ps1 
*.ml λ
*.mli λ
*.diff 
*.db 
*.sql 
*.dump 
*.clj 
*.cljc 
*.cljs 
*.edn 
*.scala 
*.go 
*.dart 
*.xul 
*.sln 
*.suo 
*.pl 
*.pm 
*.t 
*.rss 
'*.f#' 
*.fsscript 
*.fsx 
*.fs 
*.fsi 
*.rs 
*.rlib 
*.d 
*.erl 
*.hrl 
*.ex 
*.exs 
*.eex 
*.leex 
*.heex 
*.vim 
*.ai 
*.psd 
*.psb 
*.ts 
*.tsx 
*.jl 
*.pp 
*.vue 
*.elm 
*.swift 
*.xcplayground 
*.tex 󰙩
*.r 󰟔
*.rproj 󰗆
*.sol 󰡪
*.pem 
# file names (vim-devicons) (case-insensitive not supported in lf)
*gruntfile.coffee 
*gruntfile.js 
*gruntfile.ls 
*gulpfile.coffee 
*gulpfile.js 
*gulpfile.ls 
*mix.lock 
*dropbox 
*.ds_store 
*.gitconfig 
*.gitignore 
*.gitattributes 
*.gitlab-ci.yml 
*.bashrc 
*.zshrc 
*.zshenv 
*.zprofile 
*.vimrc 
*.gvimrc 
*_vimrc 
*_gvimrc 
*.bashprofile 
*favicon.ico 
*license 
*node_modules 
*react.jsx 
*procfile 
*dockerfile 
*docker-compose.yml 
*docker-compose.yaml 
*compose.yml 
*compose.yaml 
*rakefile 
*config.ru 
*gemfile 
*makefile 
*cmakelists.txt 
*robots.txt 󰚩
# file names (case-sensitive adaptations)
*Gruntfile.coffee 
*Gruntfile.js 
*Gruntfile.ls 
*Gulpfile.coffee 
*Gulpfile.js 
*Gulpfile.ls 
*Dropbox 
*.DS_Store 
*LICENSE 
*React.jsx 
*Procfile 
*Dockerfile 
*Docker-compose.yml 
*Docker-compose.yaml 
*Rakefile 
*Gemfile 
*Makefile 
*CMakeLists.txt 
# file patterns (vim-devicons) (patterns not supported in lf)
# .*jquery.*\.js$ 
# .*angular.*\.js$ 
# .*backbone.*\.js$ 
# .*require.*\.js$ 
# .*materialize.*\.js$ 
# .*materialize.*\.css$ 
# .*mootools.*\.js$ 
# .*vimrc.* 
# Vagrantfile$ 
# file patterns (file name adaptations)
*jquery.min.js 
*angular.min.js 
*backbone.min.js 
*require.min.js 
*materialize.min.js 
*materialize.min.css 
*mootools.min.js 
*vimrc 
Vagrantfile 
# archives or compressed (extensions from dircolors defaults)
*.tar 
*.tgz 
*.arc 
*.arj 
*.taz 
*.lha 
*.lz4 
*.lzh 
*.lzma 
*.tlz 
*.txz 
*.tzo 
*.t7z 
*.zip 
*.z 
*.dz 
*.gz 
*.lrz 
*.lz 
*.lzo 
*.xz 
*.zst 
*.tzst 
*.bz2 
*.bz 
*.tbz 
*.tbz2 
*.tz 
*.deb 
*.rpm 
*.jar 
*.war 
*.ear 
*.sar 
*.rar 
*.alz 
*.ace 
*.zoo 
*.cpio 
*.7z 
*.rz 
*.cab 
*.wim 
*.swm 
*.dwm 
*.esd 
# image formats (extensions from dircolors defaults)
*.jpg 
*.jpeg 
*.mjpg 
*.mjpeg 
*.gif 
*.bmp 
*.pbm 
*.pgm 
*.ppm 
*.tga 
*.xbm 
*.xpm 
*.tif 
*.tiff 
*.png 
*.svg 
*.svgz 
*.mng 
*.pcx 
*.mov 
*.mpg 
*.mpeg 
*.m2v 
*.mkv 
*.webm 
*.ogm 
*.mp4 
*.m4v 
*.mp4v 
*.vob 
*.qt 
*.nuv 
*.wmv 
*.asf 
*.rm 
*.rmvb 
*.flc 
*.avi 
*.fli 
*.flv 
*.gl 
*.dl 
*.xcf 
*.xwd 
*.yuv 
*.cgm 
*.emf 
*.ogv 
*.ogx 
# audio formats (extensions from dircolors defaults)
*.aac 
*.au 
*.flac 
*.m4a 
*.mid 
*.midi 
*.mka 
*.mp3 
*.mpc 
*.ogg 
*.ra 
*.wav 
*.oga 
*.opus 
*.spx 
*.xspf 
# other formats
*.pdf 
-80
View File
@@ -1,80 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [ pistol ];
programs.lf = {
enable = true;
commands = {
dragon-out = ''%${pkgs.xdragon}/bin/xdragon -a -x "$fx"'';
editor-open = "$$EDITOR $f";
mkdir = ''
''${{
printf "Directory Name: "
read DIR
mkdir $DIR
}}
'';
};
keybindings = {
d = "delete";
x = "cut";
"<enter>" = "open";
"<c-g>" = "quit";
"<esc>" = "quit";
"H" = "set hidden!";
"\\\"" = "";
o = "";
c = "mkdir";
"." = "set hidden!";
"`" = "mark-load";
"\\'" = "mark-load";
"g~" = "cd";
do = "dragon-out";
gh = "cd";
"g/" = "/";
ee = "editor-open";
V = ''$''${pkgs.bat}/bin/bat --paging=always "$f"'';
};
settings = {
ratios = [ 1 1 2 ];
preview = true;
hidden = true;
drawbox = true;
icons = true;
ignorecase = true;
incsearch = true;
};
previewer.source = "${pkgs.pistol}/bin/pistol";
extraConfig = let
previewer = pkgs.writeShellScriptBin "pv.sh" ''
file=$1
w=$2
h=$3
x=$4
y=$5
if [[ "$( ${pkgs.file}/bin/file -Lb --mime-type "$file")" =~ ^image ]]; then
${pkgs.kitty}/bin/kitty +kitten icat --silent --stdin no --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file" < /dev/null > /dev/tty
exit 1
fi
${pkgs.pistol}/bin/pistol "$file"
'';
cleaner = pkgs.writeShellScriptBin "clean.sh" ''
${pkgs.kitty}/bin/kitty +kitten icat --clear --stdin no --silent --transfer-mode file < /dev/null > /dev/tty
'';
in ''
set cleaner ${cleaner}/bin/clean.sh
set previewer ${previewer}/bin/pv.sh
'';
};
xdg.configFile."lf" = {
recursive = true;
source = ./config;
};
}
+4
View File
@@ -0,0 +1,4 @@
# Work in progress on another repo
{ pkgs, ... }: {
home.packages = with pkgs; [ wkhtmltopdf ];
}
+1
View File
@@ -1,3 +1,4 @@
# Nextcloud is a suite of client-server software for creating file hosting services and using them. It is functionally similar to Dropbox, although Nextcloud is free and open-source, allowing anyone to install and operate it on a private server. In contrast to proprietary services, Nextcloud can be hosted on a private server, without additional cost.
{ {
services.nextcloud-client = { services.nextcloud-client = {
enable = true; enable = true;
-12
View File
@@ -1,12 +0,0 @@
{
programs.nixvim = {
enable = true;
colorschemes.catppuccin = {
enable = true;
settings = {
transparent_background = true;
flavour = "mocha";
};
};
};
}
+6 -2
View File
@@ -1,3 +1,4 @@
# Nixvim is a NixOS module that installs and configures Neovim
{ inputs, ... }: { { inputs, ... }: {
imports = [ imports = [
inputs.nixvim.homeManagerModules.nixvim inputs.nixvim.homeManagerModules.nixvim
@@ -8,10 +9,13 @@
./plugins/tree.nix ./plugins/tree.nix
./plugins/ui.nix ./plugins/ui.nix
./plugins/utils.nix ./plugins/utils.nix
./plugins/zen-mode.nix ./plugins/dap.nix
./plugins/telescope.nix
./plugins/zenmode.nix
./options.nix ./options.nix
./colorscheme.nix
./keymaps.nix ./keymaps.nix
]; ];
programs.nixvim.enable = true;
} }
+295 -9
View File
@@ -1,24 +1,310 @@
{ {
programs.nixvim.keymaps = [ programs.nixvim = {
plugins.which-key = {
enable = true;
settings = {
delay = 600;
icons = {
breadcrumb = "»";
group = "+";
separator = ""; # ➜
mappings = false;
};
spec = [
# General Mappings
{ {
key = "<leader>fm"; __unkeyed-1 = "<leader>c";
action = "<cmd>lua vim.lsp.buf.format()<cr>"; mode = [ "n" "v" ];
options.desc = "LSP Format"; group = "+code";
} }
{ {
key = "<leader>w"; __unkeyed-1 = "<leader>d";
mode = [ "n" "v" ];
group = "+debug";
}
{
__unkeyed-1 = "<leader>s";
mode = "n";
group = "+search";
}
{
__unkeyed-1 = "<leader>m";
mode = "n";
group = "+markdown";
}
{
__unkeyed-1 = "<leader>t";
mode = "n";
group = "+trouble";
}
{
__unkeyed-1 = "<leader>u";
mode = "n";
group = "+ui";
}
{
__unkeyed-1 = "<leader>w";
mode = "n";
group = "+windows";
}
{
__unkeyed-1 = "<leader>h";
mode = "n";
group = "+harpoon";
}
];
win = {
border = "rounded";
wo.winblend = 0;
};
};
};
keymaps = [
# General Mappings
{
key = "<leader>e";
action = "<cmd>Oil --float<cr>";
options.desc = "Oil";
}
{
key = "-";
action = "<cmd>Oil<cr>";
options.desc = "Oil";
}
{
key = "<leader>E";
action = "<cmd>Neotree toggle<cr>";
options.desc = "Neotree";
}
{
key = "s";
action = "<cmd>lua require('flash').jump()<cr>";
options.desc = "Flash";
}
{
key = "K";
action = "<cmd>lua vim.lsp.buf.hover()<cr>";
options.desc = "LSP Hover";
}
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
}
# UI
{
key = "<leader>uz";
action = "<cmd>ZenMode<cr>";
options.desc = "Toggle ZenMode";
}
{
key = "<leader>uw";
action = "<cmd>set wrap!<cr>"; action = "<cmd>set wrap!<cr>";
options.desc = "Toggle word wrapping"; options.desc = "Toggle word wrapping";
} }
{ {
key = "<leader>W"; key = "<leader>ul";
action = "<cmd>set linebreak!<cr>"; action = "<cmd>set linebreak!<cr>";
options.desc = "Toggle linebreak"; options.desc = "Toggle linebreak";
} }
{ {
key = "<leader>z"; key = "<leader>us";
action = "<cmd>ZenMode<cr>"; action = "<cmd>set spell!<cr>";
options.desc = "ZenMode"; options.desc = "Toggle spellcheck";
}
{
key = "<leader>uc";
action = "<cmd>set cursorline!<cr>";
options.desc = "Toggle cursorline";
}
{
key = "<leader>un";
action = "<cmd>set number!<cr>";
options.desc = "Toggle line numbers";
}
{
key = "<leader>ur";
action = "<cmd>set relativenumber!<cr>";
options.desc = "Toggle relative line numbers";
}
{
key = "<leader>ut";
action = "<cmd>set showtabline=2<cr>";
options.desc = "Show tabline";
}
{
key = "<leader>uT";
action = "<cmd>set showtabline=0<cr>";
options.desc = "Hide tabline";
}
# Search
{
key = "<leader> ";
action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
options.desc = "Telescope";
}
{
key = "<leader>sg";
action = "<cmd>lua require('telescope.builtin').live_grep()<cr>";
options.desc = "Livegrep";
}
{
key = "<leader>sf";
action = "<cmd>lua require('telescope.builtin').find_files()<cr>";
options.desc = "Find Files";
}
{
key = "<leader>sb";
action = "<cmd>lua require('telescope.builtin').buffers()<cr>";
options.desc = "Buffers";
}
{
key = "<leader>sh";
action = "<cmd>lua require('telescope.builtin').help_tags()<cr>";
options.desc = "Help Tags";
}
{
key = "<leader>sc";
action = "<cmd>lua require('telescope.builtin').commands()<cr>";
options.desc = "Commands";
}
{
key = "<leader>sm";
action = "<cmd>lua require('telescope.builtin').marks()<cr>";
options.desc = "Marks";
}
{
key = "<leader>so";
action = "<cmd>lua require('telescope.builtin').oldfiles()<cr>";
options.desc = "Oldfiles";
}
{
key = "<leader>ss";
action = "<cmd>lua require('telescope.builtin').spell_suggest()<cr>";
options.desc = "Spell Suggest";
}
{
key = "<leader>sr";
action = "<cmd>:noh<return><esc>";
options.desc = "Reset search";
}
{
key = "<leader>st";
action = "<cmd>TodoTelescope<cr>";
options.desc = "Todos";
}
# Trouble
{
key = "<leader>tx";
action = "<cmd>Trouble diagnostics toggle<cr>";
options.desc = "Diagnostics (Trouble)";
}
{
key = "<leader>tX";
action = "<cmd>Trouble diagnostics toggle filter.buf=0<cr>";
options.desc = "Buffer Diagnostics (Trouble)";
}
{
key = "<leader>ts";
action = "<cmd>Trouble symbols toggle focus=false<cr>";
options.desc = "Symbols (Trouble)";
}
{
key = "<leader>tl";
action = "<cmd>Trouble lsp toggle focus=false win.position=right<cr>";
options.desc = "LSP Definitions / references / ... (Trouble)";
}
{
key = "<leader>tL";
action = "<cmd>Trouble loclist toggle<cr>";
options.desc = "Location List (Trouble)";
}
{
key = "<leader>tQ";
action = "<cmd>Trouble qflist toggle<cr>";
options.desc = "Quickfix List (Trouble)";
}
# Windows
{
key = "<leader>ws";
action = "<cmd>split<cr>";
options.desc = "Split";
}
{
key = "<leader>wv";
action = "<cmd>vsplit<cr>";
options.desc = "VSplit";
}
{
key = "<leader>wd";
action = "<cmd>close<cr>";
options.desc = "Close";
}
# Code
{
key = "<leader>cd";
action = "<cmd>lua vim.lsp.buf.definition()<cr>";
options.desc = "LSP Definition";
}
{
key = "<leader>cr";
action = "<cmd>lua vim.lsp.buf.references()<cr>";
options.desc = "LSP References";
}
{
key = "<leader>ct";
action = "<cmd>lua vim.lsp.buf.type_definition()<cr>";
options.desc = "LSP Type Definition";
}
{
key = "<leader>ca";
action = "<cmd>lua vim.lsp.buf.code_action()<cr>";
options.desc = "LSP Code Action";
}
{
key = "<leader>cf";
action = "<cmd>lua vim.lsp.buf.formatting()<cr>";
options.desc = "LSP Formatting";
}
{
key = "<leader>cn";
action = "<cmd>lua vim.lsp.diagnostic.goto_next()<cr>";
options.desc = "LSP Next Diagnostic";
}
{
key = "<leader>cp";
action = "<cmd>lua vim.lsp.diagnostic.goto_prev()<cr>";
options.desc = "LSP Previous Diagnostic";
}
{
key = "<leader>cu";
action = "<cmd>lua require('dapui').toggle()<CR>";
options.desc = "Toggle Dapui";
}
{
key = "<leader>cb";
action = "<cmd>lua require('dap').toggle_breakpoint()<CR>";
options.desc = "Toggle breakpoint";
} }
]; ];
};
} }
+3 -2
View File
@@ -1,5 +1,4 @@
{ {
programs.nixvim.globals.mapleader = " "; programs.nixvim.globals.mapleader = " ";
programs.nixvim.opts = { programs.nixvim.opts = {
updatetime = 50; # Faster completion updatetime = 50; # Faster completion
@@ -22,11 +21,13 @@
hlsearch = true; hlsearch = true;
smartcase = true; smartcase = true;
wildmode = "list:longest"; wildmode = "list:longest";
completeopt = [ "menuone" "noselect" ]; completeopt = [ "menuone" "noselect" "noinsert" ];
signcolumn = "yes"; signcolumn = "yes";
cursorline = false; cursorline = false;
scrolloff = 8; scrolloff = 8;
mouse = "a"; mouse = "a";
termguicolors = true;
showmode = false;
wrap = false; wrap = false;
+6 -2
View File
@@ -15,8 +15,12 @@
sources = [ sources = [
{ name = "nvim_lsp"; } { name = "nvim_lsp"; }
{ name = "luasnip"; } { name = "luasnip"; }
{ name = "buffer"; } {
name = "buffer";
option.get_bufnrs.__raw = "vim.api.nvim_list_bufs";
}
{ name = "nvim_lua"; } { name = "nvim_lua"; }
{ name = "mkdnflow"; }
{ name = "path"; } { name = "path"; }
]; ];
@@ -80,7 +84,7 @@
completion = { completion = {
winhighlight = winhighlight =
"FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel"; "FloatBorder:CmpBorder,Normal:CmpPmenu,Search:PmenuSel";
scrollbar = true; scrollbar = false;
sidePadding = 0; sidePadding = 0;
border = [ "" "" "" "" "" "" "" "" ]; border = [ "" "" "" "" "" "" "" "" ];
}; };
+28
View File
@@ -0,0 +1,28 @@
{ pkgs, ... }: {
programs.nixvim.plugins.dap = {
enable = true;
adapters = { };
signs = {
dapBreakpoint = {
text = "";
texthl = "DapBreakpoint";
};
dapBreakpointCondition = {
text = "";
texthl = "DapBreakpointCondition";
};
dapLogPoint = {
text = "";
texthl = "DapLogPoint";
};
};
extensions = {
dap-go = {
enable = true;
delve.path = "${pkgs.delve}/bin/dlv";
};
dap-ui = { enable = true; };
dap-virtual-text = { enable = true; };
};
};
}
+12 -7
View File
@@ -1,9 +1,15 @@
{ config, ... }: { { config, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
foreground = "#${config.lib.stylix.colors.base05}";
configDir = config.var.configDirectory;
in {
programs.nixvim.highlight = { programs.nixvim.highlight = {
AlphaHeaderColor.fg = "#${config.var.theme.colors.accent}"; AlphaHeaderColor.fg = accent;
AlphaTextColor.fg = "#${config.var.theme.colors.fg}"; AlphaTextColor.fg = foreground;
AlphaShortcutColor.fg = "#${config.var.theme.colors.fgalt}"; AlphaShortcutColor.fg = muted;
}; };
programs.nixvim.plugins.alpha = { programs.nixvim.plugins.alpha = {
@@ -70,8 +76,7 @@
{ {
type = "button"; type = "button";
val = " NixOs Config"; val = " NixOs Config";
on_press.__raw = on_press.__raw = "function() vim.cmd[[Neotree ${configDir}]] end";
"function() vim.cmd[[Neotree ${config.var.configDirectory}]] end";
opts = { opts = {
shortcut = "nc"; shortcut = "nc";
position = "center"; position = "center";
@@ -86,7 +91,7 @@
type = "button"; type = "button";
val = " Keybindings"; val = " Keybindings";
on_press.__raw = on_press.__raw =
"function() vim.cmd[[e ${config.var.configDirectory}/docs/KEYBINDINGS.md]] end"; "function() vim.cmd[[e ${configDir}/docs/KEYBINDINGS.md]] end";
opts = { opts = {
shortcut = "nc"; shortcut = "nc";
position = "center"; position = "center";
+2 -7
View File
@@ -12,13 +12,6 @@
html.enable = true; html.enable = true;
svelte.enable = true; svelte.enable = true;
marksman.enable = true; marksman.enable = true;
ltex = {
enable = false;
settings = {
enabled = false;
language = "en";
};
};
}; };
keymaps.lspBuf = { keymaps.lspBuf = {
"gd" = "definition"; "gd" = "definition";
@@ -43,6 +36,8 @@
tidy.enable = true; tidy.enable = true;
shellharden.enable = true; shellharden.enable = true;
shfmt.enable = true; shfmt.enable = true;
golines.enable = true;
gofumpt.enable = true;
}; };
}; };
}; };
+105 -66
View File
@@ -1,72 +1,52 @@
{ # The render-markdown.nvim plugin is a plugin that renders markdown files in a neovim in a more readable way.
programs.nixvim.plugins = { { config, ... }:
mkdnflow = { let
accent = "#${config.lib.stylix.colors.base0D}";
muted = "#${config.lib.stylix.colors.base03}";
background = "#${config.lib.stylix.colors.base00}";
in {
programs.nixvim = {
plugins.mkdnflow = {
enable = true; enable = true;
modules = { conceal = false; };
toDo.symbols = [ " " "-" "x" "!" "/" ];
mappings = { mappings = {
# Main
MkdnEnter = {
key = "<CR>";
modes = [ "n" "v" "i" ];
};
# Links
MkdnCreateLink = false; MkdnCreateLink = false;
MkdnCreateLinkFromClipboard = { MkdnCreateLinkFromClipboard = {
key = "<leader>lc"; key = "<leader>ml";
modes = [ "n" "v" ]; modes = [ "n" "v" ];
}; };
MkdnDestroyLink = {
key = "<leader>dl";
modes = "n";
};
MkdnFollowLink = false;
MkdnNextLink = {
key = "<Tab>";
modes = "n";
};
MkdnYankAnchorLink = {
key = "ya";
modes = "n";
};
MkdnYankFileAnchorLink = {
key = "yfa";
modes = "n";
};
MkdnPrevLink = {
key = "<S-Tab>";
modes = "n";
};
MkdnDecreaseHeading = { MkdnDecreaseHeading = {
key = "-"; key = "<leader>m-";
modes = "n"; modes = "n";
}; };
MkdnDestroyLink = false;
MkdnEnter = {
key = "<CR>";
modes = [ "v" ];
};
MkdnExtendList = false; MkdnExtendList = false;
MkdnFoldSection = { MkdnFoldSection = {
key = "<leader>ff"; key = "<leader>mf";
modes = "n"; modes = "n";
}; };
MkdnUnfoldSection = { MkdnUnfoldSection = {
key = "<leader>fu"; key = "<leader>mF";
modes = "n"; modes = "n";
}; };
MkdnGoBack = { MkdnFollowLink = {
key = "<BS>"; key = "gd";
modes = "n";
};
MkdnGoForward = {
key = "<Del>";
modes = "n"; modes = "n";
}; };
MkdnGoBack = false;
MkdnGoForward = false;
MkdnIncreaseHeading = { MkdnIncreaseHeading = {
key = "+"; key = "<leader>m+";
modes = "n";
};
MkdnMoveSource = {
key = "<F2>";
modes = "n"; modes = "n";
}; };
MkdnMoveSource = false;
MkdnNewListItem = false; MkdnNewListItem = false;
MkdnNewListItemAboveInsert = { MkdnNewListItemAboveInsert = {
key = "O"; key = "O";
@@ -77,56 +57,115 @@
modes = "n"; modes = "n";
}; };
MkdnNextHeading = { MkdnNextHeading = {
key = "]]"; key = "<leader>m#";
modes = "n"; modes = "n";
}; };
MkdnNextLink = false;
MkdnPrevLink = false;
MkdnPrevHeading = { MkdnPrevHeading = {
key = "[["; key = "<leader>m*";
modes = "n"; modes = "n";
}; };
MkdnSTab = false; MkdnSTab = false;
MkdnTab = false; MkdnTab = false;
MkdnTableFormat = {
key = "<leader>ft";
modes = "n";
};
MkdnTableNewColAfter = { MkdnTableNewColAfter = {
key = "<leader>ic"; key = "<leader>mc";
modes = "n"; modes = "n";
}; };
MkdnTableNewColBefore = { MkdnTableNewColBefore = {
key = "<leader>iC"; key = "<leader>mC";
modes = "n"; modes = "n";
}; };
MkdnTableNewRowAbove = { MkdnTableNewRowAbove = {
key = "<leader>iR"; key = "<leader>mR";
modes = "n"; modes = "n";
}; };
MkdnTableNewRowBelow = { MkdnTableNewRowBelow = {
key = "<leader>ir"; key = "<leader>mr";
modes = "n"; modes = "n";
}; };
MkdnTableNextCell = { MkdnTableNextCell = {
key = "<S-Tab>"; key = "<S-Tab>";
modes = "i"; modes = "n";
}; };
MkdnTableNextRow = false; MkdnTableNextRow = false;
MkdnTablePrevCell = { MkdnTablePrevCell = {
key = "<M-Tab>"; key = "<S-Tab>";
modes = "i"; modes = "n";
};
MkdnTablePrevRow = {
key = "<M-CR>";
modes = "i";
}; };
MkdnTablePrevRow = false;
MkdnToggleToDo = { MkdnToggleToDo = {
key = "<C-Space>"; key = "<C-Space>";
modes = [ "n" "v" ]; modes = [ "n" "v" ];
}; };
MkdnUpdateNumbering = { MkdnUpdateNumbering = {
key = "<leader>nn"; key = "<leader>mn";
modes = "n"; modes = "n";
}; };
MkdnYankAnchorLink = {
key = "ya";
modes = "n";
};
MkdnYankFileAnchorLink = {
key = "yfa";
modes = "n";
};
};
};
extraFiles = {
"after/ftplugin/markdown.lua".text = ''
vim.bo.tabstop = 2
vim.bo.shiftwidth = 2
vim.bo.expandtab = true
'';
};
highlight = {
RenderMarkdownBg.bg = background;
RenderMarkdownH1.fg = accent;
RenderMarkdownH2.fg = muted;
RenderMarkdownH3.fg = muted;
RenderMarkdownH4.fg = muted;
RenderMarkdownH5.fg = muted;
RenderMarkdownH6.fg = muted;
RenderMarkdownTodo.fg = muted;
RenderMarkdownWarning.fg = accent;
};
plugins.render-markdown = {
enable = true;
settings = {
heading = {
icons = [ "# " "󰲣 " "󰲥 " "󰲧 " "󰲩 " "󰲫 " ];
backgrounds = [ "RenderMarkdownBg" ];
foregrounds = [
"RenderMarkdownH1"
"RenderMarkdownH2"
"RenderMarkdownH3"
"RenderMarkdownH4"
"RenderMarkdownH5"
"RenderMarkdownH6"
];
};
checkbox = {
unchecked = { highlight = "RenderMarkdownTodo"; };
checked = { highlight = "RenderMarkdownTodo"; };
custom = {
pending = {
raw = "[-]";
rendered = "󰥔 ";
highlight = "RenderMarkdownTodo";
};
important = {
raw = "[!]";
rendered = " ";
highlight = "RenderMarkdownWarning";
};
cancel = {
raw = "[/]";
rendered = "󱋬 ";
highlight = "RenderMarkdownTodo";
};
};
};
}; };
}; };
}; };
+31
View File
@@ -0,0 +1,31 @@
{ config, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
background = "#${config.lib.stylix.colors.base00}";
background-alt = "#${config.lib.stylix.colors.base01}";
in {
programs.nixvim = {
highlight = {
TelescopePromptPrefix.fg = accent;
TelescopeSelectionCaret = {
fg = accent;
bg = background-alt;
};
TelescopeSelection.bg = background-alt;
TelescopePromptTitle = {
bg = background;
fg = accent;
};
TelescopePromptNormal.bg = background;
TelescopePromptBorder = {
bg = background;
fg = accent;
};
};
plugins.telescope = {
enable = true;
extensions.fzf-native = { enable = true; };
settings.defaults = { selection_caret = " "; };
};
};
}
-17
View File
@@ -40,22 +40,5 @@
}; };
}; };
}; };
keymaps = [
{
key = "-";
action = "<cmd>Oil<cr>";
options.desc = "Oil";
}
{
key = "<leader>e";
action = "<cmd>Oil --float<cr>";
options.desc = "Oil";
}
{
key = "<leader>E";
action = "<cmd>Neotree toggle<cr>";
options.desc = "Neotree";
}
];
}; };
} }
+40 -17
View File
@@ -1,31 +1,54 @@
{ pkgs, ... }: { { pkgs, ... }: {
home.packages = with pkgs; [ ctags ]; home.packages = with pkgs; [ ctags ];
programs.nixvim = { programs.nixvim = {
plugins = { plugins = {
lualine.enable = true; lualine = {
enable = true;
settings = {
options.disabled_filetypes.statusline =
[ "dashboard" "alpha" "neo-tree" ];
alwaysDivideMiddle = true;
globalstatus = true;
ignoreFocus = [ "neo-tree" ];
extensions = [ "fzf" ];
theme = "auto";
componentSeparators = {
left = "|";
right = "|";
};
sectionSeparators = {
left = ""; # 
right = ""; # 
};
sections = {
lualine_a = [ "mode" ];
lualine_b = [ "branch" "diff" "diagnostics" ];
lualine_c = [ "filename" ];
lualine_x = [ "filetype" ];
lualine_y = [ "progress" ];
lualine_z = [ ''" " .. os.date("%R")'' ];
};
};
};
web-devicons.enable = true;
noice.enable = true; noice.enable = true;
notify = {
enable = true;
level = "warn";
};
gitsigns = { gitsigns = {
enable = true; enable = true;
settings.current_line_blame = false; settings.current_line_blame = false;
}; };
bufferline.enable = true;
trouble.enable = true; trouble.enable = true;
which-key.enable = true; indent-blankline.enable = true;
headlines = {
enable = true;
settings = {
markdown = {
codeblock_highlight = false;
};
};
};
nvim-colorizer.enable = true; nvim-colorizer.enable = true;
# tagbar.enable = true; tagbar = {
enable = true;
tagsPackage = pkgs.universal-ctags;
};
}; };
keymaps = [{
key = "<leader>t";
action = "<cmd>TroubleToggle<cr>";
options.desc = "Trouble";
}];
}; };
} }
+26 -28
View File
@@ -1,24 +1,23 @@
{ config, ... }: { { config, ... }: {
programs.nixvim = { programs.nixvim = {
highlightOverride = { highlightOverride = {
FloatBorder.fg = "#${config.var.theme.colors.accent}"; FloatBorder.fg = "#${config.lib.stylix.colors.base0D}";
}; };
plugins = { plugins = {
copilot-vim.enable = true; copilot-vim.enable = true;
flash.enable = true; flash.enable = true;
# image.enable = true; image = {
enable = true;
integrations.markdown = {
clearInInsertMode = true;
onlyRenderImageAtCursor = true;
};
};
tmux-navigator.enable = true; tmux-navigator.enable = true;
comment.enable = true; comment.enable = true;
nvim-autopairs.enable = true; nvim-autopairs.enable = true;
friendly-snippets.enable = true; friendly-snippets.enable = true;
telescope = { todo-comments.enable = true;
enable = true;
keymaps = {
"<leader>fg" = "live_grep";
"<leader> " = "find_files";
};
extensions.fzf-native = { enable = true; };
};
treesitter = { treesitter = {
enable = true; enable = true;
nixGrammars = true; nixGrammars = true;
@@ -27,25 +26,24 @@
highlight.enable = true; highlight.enable = true;
}; };
}; };
harpoon = {
enable = true;
enableTelescope = true;
keymapsSilent = true;
keymaps = {
addFile = "<leader>ha";
toggleQuickMenu = "<leader>hu";
navNext = "<leader>hl";
navPrev = "<leader>hh";
navFile = {
"1" = "<leader>h1";
"2" = "<leader>h2";
"3" = "<leader>h3";
"4" = "<leader>h4";
};
};
};
treesitter-context.enable = true; treesitter-context.enable = true;
}; };
keymaps = [
{
key = "<C-h>";
action = "<cmd>TmuxNavigateLeft<cr>";
}
{
key = "<C-j>";
action = "<cmd>TmuxNavigateDown<cr>";
}
{
key = "<C-k>";
action = "<cmd>TmuxNavigateUp<cr>";
}
{
key = "<C-l>";
action = "<cmd>TmuxNavigateRight<cr>";
}
];
}; };
} }
-31
View File
@@ -1,31 +0,0 @@
{
programs.nixvim.plugins.zen-mode = {
enable = true;
settings = {
on_open = ''
function()
require("gitsigns.actions").toggle_current_line_blame()
vim.opt.relativenumber = false
vim.opt.signcolumn = "no"
vim.opt.wrap = true
vim.opt.linebreak = true
end
'';
plugins = {
gitsigns = { enabled = true; };
options = {
enabled = true;
ruler = false;
showcmd = false;
};
tmux = { enabled = true; };
};
window = {
backdrop = 0.95;
height = 1;
options = { signcolumn = "no"; };
width = 0.9;
};
};
};
}
+46
View File
@@ -0,0 +1,46 @@
{
programs.nixvim.plugins = {
zen-mode = {
enable = true;
settings = {
on_close = ''
function()
require("gitsigns.actions").toggle_current_line_blame()
vim.cmd('IBLEnable')
vim.opt.signcolumn = "yes:2"
vim.wo.wrap = false
vim.wo.linebreak = false
require("gitsigns.actions").refresh()
end
'';
on_open = ''
function()
require("gitsigns.actions").toggle_current_line_blame()
vim.cmd('IBLDisable')
vim.opt.relativenumber = false
vim.opt.signcolumn = "no"
vim.wo.wrap = true
vim.wo.linebreak = true
require("gitsigns.actions").refresh()
end
'';
window = {
backdrop = 1;
height = 1;
options = {
signcolumn = "no";
number = false;
relativenumber = false;
cursorline = false;
cursorcolumn = false;
foldcolumn = "0";
list = false;
};
width = 0.8;
};
};
};
};
}
+14 -98
View File
@@ -1,5 +1,13 @@
# Qutebrowser is a keyboard-focused browser with a minimal GUI.
# My homepage is generated using https://github.com/anotherhadi/homepage
{ pkgs, config, ... }: { pkgs, config, ... }:
let let
accent = "#${config.lib.stylix.colors.base0D}";
background = "#${config.lib.stylix.colors.base00}";
foreground = "#${config.lib.stylix.colors.base05}";
muted = "#${config.lib.stylix.colors.base03}";
settings = '' settings = ''
{ {
"config": { "config": {
@@ -7,10 +15,10 @@ let
"openLinksInNewTab": false, "openLinksInNewTab": false,
"locale": "fr-FR", "locale": "fr-FR",
"colors": { "colors": {
"primary": "#${config.var.theme.colors.accent}", "primary": "${accent}",
"background": "#${config.var.theme.colors.bg}", "background": "${background}",
"foreground": "#${config.var.theme.colors.fg}", "foreground": "${foreground}",
"muted": "#${config.var.theme.colors.c8}" "muted": "#${muted}"
}, },
"folders": [ "folders": [
{ {
@@ -73,10 +81,7 @@ let
in { in {
imports = [ imports = [ ./duckduckgo-colorscheme.nix ];
./duckduckgo-colorscheme.nix
# ./userscripts.nix
];
programs.qutebrowser = { programs.qutebrowser = {
enable = true; enable = true;
@@ -120,98 +125,12 @@ in {
}; };
colors = { colors = {
tabs = {
odd.bg = "#${config.var.theme.colors.bg}";
odd.fg = "#${config.var.theme.colors.fg}";
even.bg = "#${config.var.theme.colors.bg}";
even.fg = "#${config.var.theme.colors.fg}";
selected = {
odd = {
bg = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
};
even = {
bg = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
};
};
indicator = {
error = "#${config.var.theme.colors.c1}";
start = "#${config.var.theme.colors.bgalt}";
stop = "#${config.var.theme.colors.bgalt}";
};
};
hints = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
match.fg = "#${config.var.theme.colors.bg}";
};
completion = {
category = {
bg = "#${config.var.theme.colors.bg}";
fg = "#${config.var.theme.colors.fg}";
border = {
top = "#${config.var.theme.colors.bg}";
bottom = "#${config.var.theme.colors.bg}";
};
};
odd.bg = "#${config.var.theme.colors.bg}";
even.bg = "#${config.var.theme.colors.bg}";
fg = [ "#FFFFFF" "#FFFFFF" "#FFFFFF" ];
match.fg = "#${config.var.theme.colors.accent}";
item.selected = {
bg = "#${config.var.theme.colors.accent}";
border.top = "#${config.var.theme.colors.accent}";
border.bottom = "#${config.var.theme.colors.accent}";
fg = "#${config.var.theme.colors.accentFg}";
match.fg = "#${config.var.theme.colors.accentFg}";
};
};
statusbar = {
normal.bg = "#${config.var.theme.colors.bg}";
normal.fg = "#${config.var.theme.colors.fg}";
private.bg = "#${config.var.theme.colors.bg}";
private.fg = "#${config.var.theme.colors.fg}";
insert.bg = "#${config.var.theme.colors.accent}";
insert.fg = "#${config.var.theme.colors.accentFg}";
command = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
private.bg = "#${config.var.theme.colors.bgalt}";
private.fg = "#${config.var.theme.colors.fgalt}";
};
};
messages = {
info = {
bg = "#${config.var.theme.colors.bgalt}";
fg = "#${config.var.theme.colors.fgalt}";
border = "#${config.var.theme.colors.bgalt}";
};
error = {
bg = "#${config.var.theme.colors.c1}";
fg = "#${config.var.theme.colors.fgalt}";
border = "#${config.var.theme.colors.c1}";
};
};
#webpage.darkmode.enabled = true; # Enable dark mode for all websites (Weird on images)
webpage.preferred_color_scheme = webpage.preferred_color_scheme =
"dark"; # Enable dark mode for websites that support it "dark"; # Enable dark mode for websites that support it
}; };
statusbar.show = "in-mode"; statusbar.show = "in-mode";
fonts = { default_family = "${config.var.theme.font}"; };
completion = { completion = {
height = "30%"; height = "30%";
open_categories = [ "history" ]; open_categories = [ "history" ];
@@ -238,10 +157,7 @@ in {
remove_finished = 0; remove_finished = 0;
}; };
hints = { hints = { radius = 1; };
border = "none";
radius = 1;
};
scrolling = { scrolling = {
bar = "never"; bar = "never";
@@ -1,9 +1,19 @@
{ config, ... }: { # A duckduckgo colorscheme generated for the Stylix theme used.
home.file.".duckduckgo-colorscheme.js".text = '' { config, ... }:
let
accent = config.lib.stylix.colors.base0D;
background = config.lib.stylix.colors.base00;
foreground = config.lib.stylix.colors.base05;
background-alt = config.lib.stylix.colors.base01;
foreground-alt = config.lib.stylix.colors.base06;
in {
home.file.".duckduckgo-colorscheme.js".text =
# js
''
// Go to DuckDuckGo settings page, open the console, paste the code and hit enter. // Go to DuckDuckGo settings page, open the console, paste the code and hit enter.
// based on https://ddg.codingcodax.dev/ // based on https://ddg.codingcodax.dev/
// Cookies string for your theme // Cookies string for your theme
const cookie = '7=${config.var.theme.colors.bg}; j=${config.var.theme.colors.bg}; 9=${config.var.theme.colors.fg}; aa=${config.var.theme.colors.fgalt}; 8=${config.var.theme.colors.c7}; x=${config.var.theme.colors.accent}; 21=${config.var.theme.colors.bgalt};'; const cookie = '7=${background}; j=${background}; 9=${foreground}; aa=${foreground-alt}; 8=${foreground}; x=${accent}; 21=${background-alt};';
// Converts cookie string into formatted JSON // Converts cookie string into formatted JSON
const cookieToJSON = (cookieRaw) => { const cookieToJSON = (cookieRaw) => {
@@ -25,8 +35,6 @@
}); });
}; };
alert('The Nixy theme will be applied.');
// Call set cookies, passing in formated cookie data // Call set cookies, passing in formated cookie data
setCookies(cookieToJSON(cookie)); setCookies(cookieToJSON(cookie));
-14
View File
@@ -1,14 +0,0 @@
{ pkgs, ... }: {
home.packages = with pkgs; [
keyutils
python3
python311Packages.pyperclip
python312Packages.tldextract
];
xdg.configFile."qutebrowser/userscripts/bitwarden" = {
source = ./userscripts/qute-bitwarden.py;
executable = true;
};
}
@@ -1,291 +0,0 @@
#!/usr/bin/env python3
# SPDX-FileCopyrightText: Chris Braun (cryzed) <cryzed@googlemail.com>
#
# SPDX-License-Identifier: GPL-3.0-or-later
"""
Insert login information using Bitwarden CLI and a dmenu-compatible application
(e.g. dmenu, rofi -dmenu, ...).
"""
USAGE = """The domain of the site has to be in the name of the Bitwarden entry, for example: "github.com/cryzed" or
"websites/github.com". The login information is inserted by emulating key events using qutebrowser's fake-key command in this manner:
[USERNAME]<Tab>[PASSWORD], which is compatible with almost all login forms.
If enabled, with the `--totp` flag, it will also move the TOTP code to the
clipboard, much like the Firefox add-on.
You must log into Bitwarden CLI using `bw login` prior to use of this script.
The session key will be stored using keyctl for the number of seconds passed to
the --auto-lock option.
To use in qutebrowser, run: `spawn --userscript qute-bitwarden`
"""
EPILOG = """Dependencies: tldextract (Python 3 module), pyperclip (optional
Python module, used for TOTP codes), Bitwarden CLI (1.7.4 is known to work
but older versions may well also work)
WARNING: The login details are viewable as plaintext in qutebrowser's debug log
(qute://log) and might be shared if you decide to submit a crash report!"""
import argparse
import enum
import functools
import os
import shlex
import subprocess
import sys
import json
import tldextract
argument_parser = argparse.ArgumentParser(
description=__doc__,
usage=USAGE,
epilog=EPILOG,
)
argument_parser.add_argument('url', nargs='?', default=os.getenv('QUTE_URL'))
argument_parser.add_argument('--dmenu-invocation', '-d', default='wofi --dmenu -i',
help='Invocation used to execute a dmenu-provider')
argument_parser.add_argument('--password-prompt-invocation', '-p', default='rofi -dmenu -p "Master Password" -password -lines 0',
help='Invocation used to prompt the user for their Bitwarden password')
argument_parser.add_argument('--no-insert-mode', '-n', dest='insert_mode', action='store_false',
help="Don't automatically enter insert mode")
argument_parser.add_argument('--totp', '-t', action='store_true',
help="Copy TOTP key to clipboard")
argument_parser.add_argument('--io-encoding', '-i', default='UTF-8',
help='Encoding used to communicate with subprocesses')
argument_parser.add_argument('--merge-candidates', '-m', action='store_true',
help='Merge pass candidates for fully-qualified and registered domain name')
argument_parser.add_argument('--auto-lock', type=int, default=900,
help='Automatically lock the vault after this many seconds')
group = argument_parser.add_mutually_exclusive_group()
group.add_argument('--username-only', '-e',
action='store_true', help='Only insert username')
group.add_argument('--password-only', '-w',
action='store_true', help='Only insert password')
group.add_argument('--totp-only', '-T',
action='store_true', help='Only insert totp code')
stderr = functools.partial(print, file=sys.stderr)
class ExitCodes(enum.IntEnum):
SUCCESS = 0
FAILURE = 1
# 1 is automatically used if Python throws an exception
NO_PASS_CANDIDATES = 2
COULD_NOT_MATCH_USERNAME = 3
COULD_NOT_MATCH_PASSWORD = 4
def qute_command(command):
with open(os.environ['QUTE_FIFO'], 'w') as fifo:
fifo.write(command + '\n')
fifo.flush()
def ask_password(password_prompt_invocation):
process = subprocess.run(
shlex.split(password_prompt_invocation),
text=True,
stdout=subprocess.PIPE,
)
if process.returncode > 0:
raise Exception('Could not unlock vault')
master_pass = process.stdout.strip()
return subprocess.check_output(
['bw', 'unlock', '--raw', master_pass],
text=True,
).strip()
def get_session_key(auto_lock, password_prompt_invocation):
if auto_lock == 0:
subprocess.call(['keyctl', 'purge', 'user', 'bw_session'])
return ask_password(password_prompt_invocation)
else:
process = subprocess.run(
['keyctl', 'request', 'user', 'bw_session'],
text=True,
stdout=subprocess.PIPE,
)
key_id = process.stdout.strip()
if process.returncode > 0:
session = ask_password(password_prompt_invocation)
if not session:
raise Exception('Could not unlock vault')
key_id = subprocess.check_output(
['keyctl', 'add', 'user', 'bw_session', session, '@u'],
text=True,
).strip()
if auto_lock > 0:
subprocess.call(['keyctl', 'timeout', str(key_id), str(auto_lock)])
return subprocess.check_output(
['keyctl', 'pipe', str(key_id)],
text=True,
).strip()
def pass_(domain, encoding, auto_lock, password_prompt_invocation):
session_key = get_session_key(auto_lock, password_prompt_invocation)
process = subprocess.run(
['bw', 'list', 'items', '--session', session_key, '--url', domain],
capture_output=True,
)
err = process.stderr.decode(encoding).strip()
if err:
msg = 'Bitwarden CLI returned for {:s} - {:s}'.format(domain, err)
stderr(msg)
if process.returncode:
return '[]'
out = process.stdout.decode(encoding).strip()
return out
def get_totp_code(selection_id, domain_name, encoding, auto_lock, password_prompt_invocation):
session_key = get_session_key(auto_lock, password_prompt_invocation)
process = subprocess.run(
['bw', 'get', 'totp', '--session', session_key, selection_id],
capture_output=True,
)
err = process.stderr.decode(encoding).strip()
if err:
# domain_name instead of selection_id to make it more user-friendly
msg = 'Bitwarden CLI returned for {:s} - {:s}'.format(domain_name, err)
stderr(msg)
if process.returncode:
return '[]'
out = process.stdout.decode(encoding).strip()
return out
def dmenu(items, invocation, encoding):
command = shlex.split(invocation)
process = subprocess.run(command, input='\n'.join(
items).encode(encoding), stdout=subprocess.PIPE)
return process.stdout.decode(encoding).strip()
def fake_key_raw(text):
for character in text:
# Escape all characters by default, space requires special handling
sequence = '" "' if character == ' ' else r'\{}'.format(character)
qute_command('fake-key {}'.format(sequence))
def main(arguments):
if not arguments.url:
argument_parser.print_help()
return ExitCodes.FAILURE
extract_result = tldextract.extract(arguments.url)
# Try to find candidates using targets in the following order: fully-qualified domain name (includes subdomains),
# the registered domain name and finally: the IPv4 address if that's what
# the URL represents
candidates = []
for target in filter(None, [
extract_result.fqdn,
extract_result.registered_domain,
extract_result.subdomain + '.' + extract_result.domain,
extract_result.domain,
extract_result.ipv4]):
target_candidates = json.loads(
pass_(
target,
arguments.io_encoding,
arguments.auto_lock,
arguments.password_prompt_invocation,
)
)
if not target_candidates:
continue
candidates = candidates + target_candidates
if not arguments.merge_candidates:
break
else:
if not candidates:
stderr('No pass candidates for URL {!r} found!'.format(
arguments.url))
return ExitCodes.NO_PASS_CANDIDATES
if len(candidates) == 1:
selection = candidates.pop()
else:
choices = ['{:s} | {:s}'.format(c['name'], c['login']['username']) for c in candidates]
choice = dmenu(choices, arguments.dmenu_invocation, arguments.io_encoding)
choice_tokens = choice.split('|')
choice_name = choice_tokens[0].strip()
choice_username = choice_tokens[1].strip()
selection = next((c for (i, c) in enumerate(candidates)
if c['name'] == choice_name
and c['login']['username'] == choice_username),
None)
# Nothing was selected, simply return
if not selection:
return ExitCodes.SUCCESS
username = selection['login']['username']
password = selection['login']['password']
totp = selection['login']['totp']
if arguments.username_only:
fake_key_raw(username)
elif arguments.password_only:
fake_key_raw(password)
elif arguments.totp_only:
# No point in moving it to the clipboard in this case
fake_key_raw(
get_totp_code(
selection['id'],
selection['name'],
arguments.io_encoding,
arguments.auto_lock,
arguments.password_prompt_invocation,
)
)
else:
# Enter username and password using fake-key and <Tab> (which seems to work almost universally), then switch
# back into insert-mode, so the form can be directly submitted by
# hitting enter afterwards
fake_key_raw(username)
qute_command('fake-key <Tab>')
fake_key_raw(password)
if arguments.insert_mode:
qute_command('mode-enter insert')
# If it finds a TOTP code, it copies it to the clipboard,
# which is the same behavior as the Firefox add-on.
if not arguments.totp_only and totp and arguments.totp:
# The import is done here, to make pyperclip an optional dependency
import pyperclip
pyperclip.copy(
get_totp_code(
selection['id'],
selection['name'],
arguments.io_encoding,
arguments.auto_lock,
arguments.password_prompt_invocation,
)
)
return ExitCodes.SUCCESS
if __name__ == '__main__':
arguments = argument_parser.parse_args()
sys.exit(main(arguments))
+2 -9
View File
@@ -1,11 +1,4 @@
{ {
imports = [ imports =
./fzf.nix [ ./fzf.nix ./zsh.nix ./starship.nix ./zoxide.nix ./tmux.nix ./eza.nix ];
./zsh.nix
./starship.nix
./zoxide.nix
./tmux.nix
./lazygit.nix
./eza.nix
];
} }
+1
View File
@@ -1,3 +1,4 @@
# Eza is a ls replacement
{ {
programs.eza = { programs.eza = {
enable = true; enable = true;
+12 -6
View File
@@ -1,14 +1,20 @@
{ config, ... }: { # Fzf is a general-purpose command-line fuzzy finder.
{ config, lib, ... }:
let
accent = "#" + config.lib.stylix.colors.base0D;
foreground = "#" + config.lib.stylix.colors.base05;
muted = "#" + config.lib.stylix.colors.base03;
in {
programs.fzf = { programs.fzf = {
enable = true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
colors = { colors = lib.mkForce {
"fg+" = config.var.theme.colors.accentName; "fg+" = accent;
"bg+" = "-1"; "bg+" = "-1";
"fg" = "white"; "fg" = foreground;
"bg" = "-1"; "bg" = "-1";
"prompt" = "grey"; "prompt" = muted;
"pointer" = config.var.theme.colors.accentName; "pointer" = accent;
}; };
defaultOptions = [ defaultOptions = [
"--margin=1" "--margin=1"
-13
View File
@@ -1,13 +0,0 @@
{ config, ... }: {
programs.lazygit = {
enable = true;
settings = {
gui.theme = {
ligthTheme = false;
activeBorderColor = [ "${config.var.theme.colors.accentName}" "bold" ];
inactiveBorderColor = [ "black" ];
selectedLineBgColor = [ "default" ];
};
};
};
}
+12 -6
View File
@@ -1,4 +1,9 @@
{ config, lib, ... }: { # starship is a minimal, fast, and extremely customizable prompt for any shell!
{ config, lib, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
background-alt = "#${config.lib.stylix.colors.base01}";
in {
programs.starship = { programs.starship = {
enable = true; enable = true;
settings = { settings = {
@@ -10,22 +15,23 @@
"$git_status" "$git_status"
"$character" "$character"
]; ];
directory = { style = "#${config.var.theme.colors.accent}"; }; directory = { style = accent; };
character = { character = {
success_symbol = "[](#${config.var.theme.colors.accent})"; success_symbol = "[](${accent})";
error_symbol = "[](red)"; error_symbol = "[](red)";
vimcmd_symbol = "[](cyan)"; vimcmd_symbol = "[](cyan)";
}; };
git_branch = { git_branch = {
format = "[$branch]($style)"; symbol = "[](${background-alt}) ";
style = "bright-black"; style = "fg:${accent} bg:${background-alt}";
format = "on [$symbol$branch]($style)[](${background-alt}) ";
}; };
git_status = { git_status = {
format = format =
"[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"; "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218)($ahead_behind$stashed)]($style)";
style = "cyan"; style = "cyan";
conflicted = ""; conflicted = "";
renamed = ""; renamed = "";
+11 -26
View File
@@ -1,3 +1,4 @@
# Tmux is a terminal multiplexer that allows you to run multiple terminal sessions in a single window.
{ pkgs, ... }: { { pkgs, ... }: {
programs.tmux = { programs.tmux = {
enable = true; enable = true;
@@ -12,37 +13,21 @@
bind-key j select-pane -D bind-key j select-pane -D
bind-key k select-pane -U bind-key k select-pane -U
bind-key l select-pane -R bind-key l select-pane -R
set -gq allow-passthrough on set -gq allow-passthrough on
bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt
set -g detach-on-destroy off # don't exit from tmux when closing a session
bind-key -n C-Tab next-window
bind-key -n C-S-Tab previous-window
bind-key -n M-Tab new-window
''; '';
plugins = with pkgs; [ plugins = with pkgs; [
tmuxPlugins.vim-tmux-navigator tmuxPlugins.vim-tmux-navigator
{ tmuxPlugins.resurrect
plugin = tmuxPlugins.catppuccin; tmuxPlugins.sensible
extraConfig = '' tmuxPlugins.tokyo-night-tmux
set-option -g status-position top
set -g @catppuccin_window_left_separator ""
set -g @catppuccin_window_right_separator " "
set -g @catppuccin_window_middle_separator " "
set -g @catppuccin_window_number_position "right"
set -g @catppuccin_window_default_fill "number"
set -g @catppuccin_window_default_text "#W"
set -g @catppuccin_window_current_fill "number"
set -g @catppuccin_window_current_text "#W"
set -g @catppuccin_status_modules_right ""
set -g @catppuccin_status_left_separator " "
set -g @catppuccin_status_right_separator ""
set -g @catppuccin_status_fill "icon"
set -g @catppuccin_status_connect_separator "no"
set -g @catppuccin_directory_text "#{pane_current_path}"
set -g @catppuccin_status_background "default"
set-option -g default-terminal "screen-256color"
'';
}
]; ];
}; };
} }
+2 -1
View File
@@ -1,6 +1,7 @@
# Zoxide is a cd replacement
{ {
programs.zoxide = { programs.zoxide = {
enable= true; enable = true;
enableZshIntegration = true; enableZshIntegration = true;
}; };
} }
+28 -11
View File
@@ -1,6 +1,9 @@
{ pkgs, lib, config, ... }: { # My shell configuration
{ pkgs, lib, config, ... }:
let fetch = config.var.theme.fetch; # neofetch, nerdfetch, pfetch
in {
home.packages = with pkgs; [ bat ripgrep tldr ]; home.packages = with pkgs; [ bat ripgrep tldr sesh ];
home.sessionPath = [ "$HOME/go/bin" ]; home.sessionPath = [ "$HOME/go/bin" ];
@@ -13,20 +16,31 @@
initExtraFirst = '' initExtraFirst = ''
bindkey -e bindkey -e
${if config.var.theme.fetch == "neofetch" then ${if fetch == "neofetch" then
pkgs.neofetch + "/bin/neofetch" pkgs.neofetch + "/bin/neofetch"
else if config.var.theme.fetch == "nerdfetch" then else if fetch == "nerdfetch" then
"nerdfetch" "nerdfetch"
else if config.var.theme.fetch == "pfetch" then else if fetch == "pfetch" then
"echo; ${pkgs.pfetch}/bin/pfetch" "echo; ${pkgs.pfetch}/bin/pfetch"
else else
""} ""}
function sesh-sessions() {
session=$(sesh list -t -c | fzf --height 70% --reverse)
[[ -z "$session" ]] && return
sesh connect $session
}
zle -N sesh-sessions
bindkey -M emacs '\es' sesh-sessions
bindkey -M vicmd '\es' sesh-sessions
bindkey -M viins '\es' sesh-sessions
''; '';
history = { history = {
ignoreDups = true; ignoreDups = true;
save = 1000000; save = 10000;
size = 1000000; size = 10000;
}; };
profileExtra = lib.optionalString (config.home.sessionPath != [ ]) '' profileExtra = lib.optionalString (config.home.sessionPath != [ ]) ''
@@ -49,17 +63,17 @@
sl = "ls"; sl = "ls";
open = "${pkgs.xdg_utils}/bin/xdg-open"; open = "${pkgs.xdg_utils}/bin/xdg-open";
icat = "${pkgs.kitty}/bin/kitty +kitten icat"; icat = "${pkgs.kitty}/bin/kitty +kitten icat";
wireguard-import = "nmcli connection import type wireguard file"; wireguard-import = "nmcli connection import type wireguard file";
neorg =
"cd ~/nextcloud/neorg && vim -c ':ZenMode' -c ':Telescope find_files' index.norg";
notes = notes =
"cd ~/nextcloud/Notes && vim -c ':ZenMode' -c ':Telescope find_files' index.md"; "nvim ~/nextcloud/Notes/index.md --cmd 'cd ~/nextcloud/Notes' -c ':Telescope find_files'";
note = "notes"; note = "notes";
# git # git
g = "lazygit";
ga = "git add"; ga = "git add";
gc = "git commit"; gc = "git commit";
gcm = "git commit -m";
gcu = "git add . && git commit -m 'Update'"; gcu = "git add . && git commit -m 'Update'";
gp = "git push"; gp = "git push";
gpl = "git pull"; gpl = "git pull";
@@ -68,6 +82,9 @@
gco = "git checkout"; gco = "git checkout";
gcb = "git checkout -b"; gcb = "git checkout -b";
gbr = "git branch"; gbr = "git branch";
gaa = "git add .";
gcm = "git commit -m";
}; };
}; };
} }
+13 -18
View File
@@ -1,31 +1,26 @@
# Spicetify is a spotify client customizer
{ pkgs, config, lib, inputs, ... }: { pkgs, config, lib, inputs, ... }:
let spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system}; let
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
accent = "${config.lib.stylix.colors.base0D}";
in { in {
imports = [ inputs.spicetify-nix.homeManagerModules.default ]; imports = [ inputs.spicetify-nix.homeManagerModules.default ];
nixpkgs.config.allowUnfreePredicate = pkg: nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [ "spotify" ]; builtins.elem (lib.getName pkg) [ "spotify" ];
stylix.targets.spicetify.enable = false;
programs.spicetify = { programs.spicetify = {
enable = true; enable = true;
theme = spicePkgs.themes.text; theme = lib.mkForce spicePkgs.themes.text;
colorScheme = "custom"; colorScheme = "custom";
customColorScheme = { customColorScheme = {
text = "${config.var.theme.colors.fg}"; button = accent;
subtext = "${config.var.theme.colors.fgalt}"; button-active = accent;
sidebar-text = "${config.var.theme.colors.fgalt}"; tab-active = accent;
main = "${config.var.theme.colors.bg}";
sidebar = "${config.var.theme.colors.bg}";
background = "${config.var.theme.colors.bg}";
player = "${config.var.theme.colors.bg}";
card = "${config.var.theme.colors.bg}";
shadow = "000000";
selected-row = "${config.var.theme.colors.bgalt}";
button = "${config.var.theme.colors.accent}";
button-active = "${config.var.theme.colors.accent}";
button-disabled = "${config.var.theme.colors.bgalt}";
tab-active = "${config.var.theme.colors.accent}";
misc = "${config.var.theme.colors.fgalt}";
}; };
enabledExtensions = with spicePkgs.extensions; [ enabledExtensions = with spicePkgs.extensions; [
+46
View File
@@ -0,0 +1,46 @@
# Thunar is a file explorer
{ pkgs, ... }: {
# ctrl + m to toggle the menubar
home.packages = with pkgs.xfce; [
thunar
xfconf
tumbler
thunar-archive-plugin
thunar-volman
];
home.file.".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml".text = ''
<?xml version="1.0" encoding="UTF-8"?>
<channel name="thunar" version="1.0">
<property name="last-view" type="string" value="ThunarIconView"/>
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_100_PERCENT"/>
<property name="last-window-maximized" type="bool" value="true"/>
<property name="last-separator-position" type="int" value="170"/>
<property name="last-statusbar-visible" type="bool" value="false"/>
<property name="last-menubar-visible" type="bool" value="false"/>
<property name="misc-single-click" type="bool" value="false"/>
<property name="shortcuts-icon-emblems" type="bool" value="true"/>
<property name="tree-icon-emblems" type="bool" value="true"/>
<property name="misc-file-size-binary" type="bool" value="true"/>
<property name="misc-thumbnail-draw-frames" type="bool" value="false"/>
<property name="misc-text-beside-icons" type="bool" value="true"/>
<property name="misc-change-window-icon" type="bool" value="true"/>
<property name="hidden-bookmarks" type="array">
<value type="string" value="computer:///"/>
<value type="string" value="recent:///"/>
<value type="string" value="file:///"/>
<value type="string" value="network:///"/>
</property>
<property name="hidden-devices" type="array">
<value type="string" value="52FEA905FEA8E309"/>
</property>
<property name="last-toolbar-item-order" type="string" value="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17"/>
<property name="last-toolbar-visible-buttons" type="string" value="0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0"/>
<property name="last-location-bar" type="string" value="ThunarLocationButtons"/>
<property name="last-show-hidden" type="bool" value="false"/>
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
<property name="last-details-view-column-widths" type="string" value="50,50,127,50,50,50,50,50,751,50,50,75,50,145"/>
</channel>
'';
}
+1 -23
View File
@@ -1,3 +1,4 @@
# Yazi is a TUI file explorer
{ {
programs.yazi = { programs.yazi = {
enable = true; enable = true;
@@ -12,28 +13,5 @@
sort_reverse = true; sort_reverse = true;
}; };
}; };
theme = {
filetype = {
rules = [
{
fg = "#7AD9E5";
mime = "image/*";
}
{
fg = "#F3D398";
mime = "video/*";
}
{
fg = "#F3D398";
mime = "audio/*";
}
{
fg = "#CD9EFC";
mime = "application/x-bzip";
}
];
};
};
}; };
} }
-36
View File
@@ -1,36 +0,0 @@
{ pkgs, ... }:
let
battery-watch = pkgs.writeShellScriptBin "battery-watch" ''
while true;do
battery-plugged &
battery-level &
sleep 60
done
'';
battery-plugged = pkgs.writeShellScriptBin "battery-plugged" ''
BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1)
OLD_BATTERY_STATUS=$(cat /tmp/old_battery_status 2>/dev/null || echo "Unknown")
if [[ $BATTERY_STATUS != $OLD_BATTERY_STATUS && $OLD_BATTERY_STATUS != "Unknown" ]]; then
if [[ $BATTERY_STATUS == "Discharging" ]]; then
notif "battery" "󰚦 Battery is unplugged"
else
notif "battery" "󰚥 Battery is plugged in"
fi
fi
echo $BATTERY_STATUS > /tmp/old_battery_status
'';
battery-level = pkgs.writeShellScriptBin "battery-level" ''
BATTERY_LEVEL=$(cat /sys/class/power_supply/BAT*/capacity | head -n1)
BATTERY_STATUS=$(cat /sys/class/power_supply/BAT*/status | head -n1)
if [[ $BATTERY_LEVEL -le 20 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then
notif "battery" "󰁻 Low battery" "Battery level is $BATTERY_LEVEL%"
elif [[ $BATTERY_LEVEL -le 10 ]] && [[ $BATTERY_STATUS == "Discharging" ]]; then
notif "battery" "󰁺 Very low battery" "Battery level is $BATTERY_LEVEL%"
# elif [[ $BATTERY_LEVEL -eq 100 ]] && [[ $BATTERY_STATUS -ne "Discharging" ]]; then
# notif "battery" "󰁹 Fully charged"
fi
'';
in { home.packages = [ battery-watch battery-plugged battery-level ]; }
+23 -10
View File
@@ -1,19 +1,24 @@
# - ## Brightness
#-
#- This module provides a set of scripts to control the brightness of the screen.
#-
#- - `brightness-up` increases the brightness by 5%.
#- - `brightness-down` decreases the brightness by 5%.
#- - `brightness-set [value]` sets the brightness to the given value.
#- - `brightness-change [up|down] [value]` increases or decreases the brightness by the given value.
{ pkgs, ... }: { pkgs, ... }:
let let
increments = "5"; increments = "5";
brightness-change = pkgs.writeShellScriptBin "brightness-change" '' brightness-change = pkgs.writeShellScriptBin "brightness-change" ''
sleep 0.05 [[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%+
[[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ''${2-${increments}}%-
'';
[[ $1 == "up" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%+ brightness-set = pkgs.writeShellScriptBin "brightness-set" ''
[[ $1 == "down" ]] && ${pkgs.brightnessctl}/bin/brightnessctl set ${increments}%- ${pkgs.brightnessctl}/bin/brightnessctl set ''${1-100}%
brightness_level=$(${pkgs.brightnessctl}/bin/brightnessctl get)
message="󰃠 Brightness: $brightness_level%"
notif "brightness" "$message" "extraargs=-h int:value:$brightness_level"
''; '';
brightness-up = pkgs.writeShellScriptBin "brightness-up" '' brightness-up = pkgs.writeShellScriptBin "brightness-up" ''
@@ -24,4 +29,12 @@ let
brightness-change down ${increments} brightness-change down ${increments}
''; '';
in { home.packages = [ brightness-change brightness-up brightness-down ]; } in {
home.packages = [
pkgs.brightnessctl
brightness-change
brightness-up
brightness-down
brightness-set
];
}
+22 -18
View File
@@ -1,29 +1,33 @@
# - ## Caffeine
#-
#- Caffeine is a simple script that toggles hypridle (disable suspend & screenlock).
#-
#- - `caffeine-status` - Check if hypridle is running. (0/1)
#- - `caffeine-status-icon` - Check if hypridle is running. (icon)
#- - `caffeine` - Toggle hypridle.
{ pkgs, ... }: { pkgs, ... }:
let let
caffeine-status = pkgs.writeShellScriptBin "caffeine-status" '' caffeine-status = pkgs.writeShellScriptBin "caffeine-status" ''
[[ -f /tmp/caffeine ]] && echo "1" || echo "0" [[ $(pidof "hypridle") ]] && echo "0" || echo "1"
'';
caffeine = pkgs.writeShellScriptBin "caffeine" ''
if [[ -f /tmp/caffeine ]]; then
rm /tmp/caffeine
${pkgs.hyprland}/bin/hyprctl dispatch exec ${pkgs.hypridle}/bin/hypridle
message="󰾪 Caffeine Deactivated"
else
touch /tmp/caffeine
pkill hypridle
message="󰅶 Caffeine Activated"
fi
notif "caffeine" "$message"
''; '';
caffeine-status-icon = pkgs.writeShellScriptBin "caffeine-status-icon" '' caffeine-status-icon = pkgs.writeShellScriptBin "caffeine-status-icon" ''
status=$(caffeine-status) [[ $(pidof "hypridle") ]] && echo "󰾪" || echo "󰅶"
if [[ $status == "1" ]]; then '';
echo "󰅶"
caffeine = pkgs.writeShellScriptBin "caffeine" ''
if [[ $(pidof "hypridle") ]]; then
systemctl --user stop hypridle.service
title="󰅶 Caffeine Activated"
description="Caffeine is now active! Your screen will not turn off automatically."
else else
echo "󰾪" systemctl --user start hypridle.service
title="󰾪 Caffeine Deactivated"
description="Caffeine is now deactivated! Your screen will turn off automatically."
fi fi
notif "caffeine" "$title" "$description"
''; '';
in { home.packages = [ caffeine-status caffeine caffeine-status-icon ]; } in { home.packages = [ caffeine-status caffeine caffeine-status-icon ]; }
-22
View File
@@ -1,22 +0,0 @@
# From https://github.com/Frost-Phoenix/nixos-config
{ pkgs, ... }:
let
compress = pkgs.writeShellScriptBin "compress" ''
if (( $# == 1 )) then
# echo -ne "Archive name: "
# read name
# tar -cvzf "$name.tar.gz" $1
tar -cvzf "$1.tar.gz" $1
else
echo "Wrong number of arguments..."
fi
'';
extract = pkgs.writeShellScriptBin "extract" ''
for i in "$@" ; do
tar -xvzf $i
break
done
'';
in { home.packages = [ compress extract ]; }
+3 -4
View File
@@ -4,13 +4,12 @@
./sounds ./sounds
./brightness ./brightness
./caffeine ./caffeine
./hyprpanel
./hyprfocus
./night-shift ./night-shift
./screenshot ./screenshot
./startup
./nerdfont_fzf ./nerdfont_fzf
./notification ./notification
./battery ./system
./compress
./misc
]; ];
} }
+42
View File
@@ -0,0 +1,42 @@
# - ## Hyprfocus
#-
#- A simple script to toggle focus on few windows in Hyprland.
#- (disable gaps, border, shadow, opacity, etc.)
#-
#- - `hyprfocus-on` - Enable hyprfocus.
#- - `hyprfocus-off` - Disable hyprfocus.
#- - `hyprfocus-toggle` - Toggle hyprfocus.
{ pkgs, ... }:
let
hyprfocus-on = pkgs.writeShellScriptBin "hyprfocus-on"
# bash
''
hyprctl keyword "general:gaps_in" 0
hyprctl keyword "general:gaps_out" 0
hyprpanel-hide
hyprctl keyword "general:border_size" 1
hyprctl keyword "decoration:rounding" 0
hyprctl keyword "decoration:drop_shadow" false
hyprctl keyword "decoration:inactive_opacity" 0.98
hyprctl keyword "decoration:active_opacity" 1
echo "1" > /tmp/hyprfocus
'';
hyprfocus-off = pkgs.writeShellScriptBin "hyprfocus-off"
# bash
''
hyprctl reload
hyprpanel-show
rm /tmp/hyprfocus
'';
hyprfocus-toggle = pkgs.writeShellScriptBin "hyprfocus-toggle"
# bash
''
if [ -f /tmp/hyprfocus ]; then
hyprfocus-off
else
hyprfocus-on
fi
'';
in { home.packages = [ hyprfocus-on hyprfocus-off hyprfocus-toggle ]; }
+46
View File
@@ -0,0 +1,46 @@
# - ## Hyprpanel
#-
#- Quick scripts to toggle, reload and kill hyprpanel.
#-
#- - `hyprpanel-toggle` - Toggle hyprpanel.
#- - `hyprpanel-reload` - Reload hyprpanel.
#- - `hyprpanel-kill` - Kill hyprpanel.
{ pkgs, ... }:
let
hyprpanel-toggle = pkgs.writeShellScriptBin "hyprpanel-toggle" ''
hyprpanel -t bar-0
hyprpanel -t bar-1
hyprpanel -t bar-2
hyprpanel -t bar-3
'';
hyprpanel-hide = pkgs.writeShellScriptBin "hyprpanel-hide" ''
status=$(hyprpanel -r "isWindowVisible('bar-0')")
if [[ $status == "true" ]]; then
hyprpanel -t bar-0
fi
status=$(hyprpanel -r "isWindowVisible('bar-1')")
if [[ $status == "true" ]]; then
hyprpanel -t bar-1
fi
'';
hyprpanel-show = pkgs.writeShellScriptBin "hyprpanel-show" ''
status=$(hyprpanel -r "isWindowVisible('bar-0')")
if [[ $status == "false" ]]; then
hyprpanel -t bar-0
fi
status=$(hyprpanel -r "isWindowVisible('bar-1')")
if [[ $status == "false" ]]; then
hyprpanel -t bar-1
fi
'';
hyprpanel-reload = pkgs.writeShellScriptBin "hyprpanel-reload" ''
[ $(pgrep "ags") ] && pkill ags
hyprctl dispatch exec hyprpanel
'';
in {
home.packages =
[ hyprpanel-toggle hyprpanel-reload hyprpanel-hide hyprpanel-show ];
}
-24
View File
@@ -1,24 +0,0 @@
{ pkgs, ... }:
let
menu = pkgs.writeShellScriptBin "menu" ''
if pgrep wofi; then
pkill wofi
else
wofi --show drun
fi
'';
powermenu = pkgs.writeShellScriptBin "powermenu" ''
if pgrep wlogout; then
pkill wlogout
else
${pkgs.wlogout}/bin/wlogout
fi
'';
lock = pkgs.writeShellScriptBin "lock" ''
${pkgs.hyprlock}/bin/hyprlock
'';
in { home.packages = [ menu powermenu lock ]; }
+14 -19
View File
@@ -1,34 +1,29 @@
# - ## Nerdfont FZF
#-
#- This module provides a script to search for Nerd Fonts icons using fzf.
#-
#- - `nerdfont-fzf` - Search for Nerd Fonts icons using fzf.
{ pkgs, config, ... }: { pkgs, config, ... }:
let let
homedir = config.home.homeDirectory;
nerdfont-fzf = pkgs.writeShellScriptBin "nerdfont-fzf" '' nerdfont-fzf = pkgs.writeShellScriptBin "nerdfont-fzf" ''
# Dependencies: jq, fzf, wl-copy, wget icons=$(${pkgs.jq}/bin/jq -r 'to_entries[] | "\(.key):\(.value.char)"' "/home/${config.var.username}/.config/nerdfont_glyphnames.json" | awk -F: '{print "\033[95m "$2" \033[0m "$1}')
icons=$(jq -r 'to_entries[] | "\(.key):\(.value.char)"' "${homedir}/.config/nerdfont_glyphnames.json" | awk -F: '{print "\033[95m "$2" \033[0m "$1}') fzf_result=$(echo "$icons" | ${pkgs.fzf}/bin/fzf --ansi --border none | awk '{print $1}')
fzf_result=$(echo "$icons" | fzf --ansi --border none | awk '{print $1}')
if [ -z "$fzf_result" ]; then if [ -z "$fzf_result" ]; then
echo "No icon selected" echo "No icon selected"
exit 1 exit 1
fi fi
echo "Copied to clipboard: $fzf_result" echo "Copied to clipboard: $fzf_result"
echo "Paste it to close the window" ${pkgs.wl-clipboard}/bin/wl-copy "$fzf_result"
${pkgs.wl-clipboard}/bin/wl-copy -o "$fzf_result" # wait for paste before exiting.. not cool
''; '';
nerdfont-fzf-fetch = pkgs.writeShellScriptBin "nerdfont-fzf-fetch" ''
wget "https://raw.githubusercontent.com/ryanoasis/nerd-fonts/master/glyphnames.json" -O "glyphnames.json" || exit 1
jq 'del(.METADATA)' "glyphnames.json"
'';
nerdfont-popup = pkgs.writeShellScriptBin "nerdfont-popup" ''
${pkgs.kitty}/bin/kitty --class floating -o font_size=18 zsh -c nerdfont-fzf 2>/dev/null
'';
in { in {
home.packages = [ nerdfont-fzf nerdfont-fzf-fetch nerdfont-popup ]; home.packages = [ nerdfont-fzf ];
xdg.configFile."nerdfont_glyphnames.json" = { xdg.configFile."nerdfont_glyphnames.json" = {
source = ./nerdfont_glyphnames.json; source = pkgs.fetchurl {
url =
"https://raw.githubusercontent.com/ryanoasis/nerd-fonts/384b1825ea0037b0314f7f9c660a80c1ecdb219a/glyphnames.json";
hash = "sha256-Ps0dyFcMs51RMTthBOVSOf/lafPV/53JxuNSKlmZ7cc=";
};
}; };
} }
+22 -11
View File
@@ -1,22 +1,33 @@
# - ## Night-Shift
#-
#- Night-Shift is a feature that reduces the amount of blue light emitted by your screen, which can help reduce eye strain and improve sleep quality. This module provides a set of scripts to control Night-Shift on your system.
#-
#- - `night-shift-on` activates Night-Shift.
#- - `night-shift-off` deactivates Night-Shift.
#- - `night-shift` toggles Night-Shift.
#- - `night-shift-status` checks if Night-Shift is active. (0/1)
#- - `night-shift-status-icon` checks if Night-Shift is active. (icon)
{ pkgs, ... }: { pkgs, ... }:
let let
default = "4000";
night-shift-on = pkgs.writeShellScriptBin "night-shift-on" '' night-shift-on = pkgs.writeShellScriptBin "night-shift-on" ''
${pkgs.hyprland}/bin/hyprctl dispatch exec "${pkgs.wlsunset}/bin/wlsunset -t ${default}" ${pkgs.hyprshade}/bin/hyprshade on blue-light-filter
message="󰖔 Night-Shift Activated" title="󰖔 Night-Shift Activated"
notif "night-shift" "$message" description="Night-Shift is now activated! Your screen will be warmer and easier on the eyes."
notif "night-shift" "$title" "$description"
''; '';
night-shift-off = pkgs.writeShellScriptBin "night-shift-off" '' night-shift-off = pkgs.writeShellScriptBin "night-shift-off" ''
pkill wlsunset ${pkgs.hyprshade}/bin/hyprshade off
message="󰖔 Night-Shift Deactivated" title="󰖕 Night-Shift Deactivated"
notif "night-shift" "$message" description="Night-Shift is now deactivated! Your screen will return to normal."
notif "night-shift" "$title" "$description"
''; '';
night-shift = pkgs.writeShellScriptBin "night-shift" '' night-shift = pkgs.writeShellScriptBin "night-shift" ''
if pgrep wlsunset; then if [[ $(${pkgs.hyprshade}/bin/hyprshade current) ]]; then
night-shift-off night-shift-off
else else
night-shift-on night-shift-on
@@ -24,7 +35,7 @@ let
''; '';
night-shift-status = pkgs.writeShellScriptBin "night-shift-status" '' night-shift-status = pkgs.writeShellScriptBin "night-shift-status" ''
if [[ $(pgrep wlsunset) ]]; then if [[ $(${pkgs.hyprshade}/bin/hyprshade current) ]]; then
echo "1" echo "1"
else else
echo "0" echo "0"
@@ -33,7 +44,7 @@ let
night-shift-status-icon = night-shift-status-icon =
pkgs.writeShellScriptBin "night-shift-status-icon" '' pkgs.writeShellScriptBin "night-shift-status-icon" ''
if [[ $(pgrep wlsunset) ]]; then if [[ $(hyprshade current) ]]; then
echo "󰖔" echo "󰖔"
else else
echo "󰖕" echo "󰖕"
+25 -12
View File
@@ -1,8 +1,19 @@
{ pkgs, config, ... }: # - ## Nixy
#-
#- Nixy is a simple script that I use to manage my NixOS system. It's a simple script that provides a menu to rebuild, upgrade, update, collect garbage, clean boot menu, etc.
#-
#- - `nixy` - UI wizard to manage the system.
#- - `nixy rebuild` - Rebuild the system.
#- - `nixy ...` - ... see the script for more commands.
{ pkgs, config, inputs, ... }:
let let
nixy = pkgs.writeShellScriptBin "nixy" '' configDirectory = config.var.configDirectory;
hostname = config.var.hostname;
nixy = pkgs.writeShellScriptBin "nixy"
# bash
''
function exec() { function exec() {
$@ $@
} }
@@ -12,11 +23,13 @@ let
# "icon;name;command"[] # "icon;name;command"[]
apps=( apps=(
";Rebuild;nixy rebuild" "󰑓;Rebuild;nixy rebuild"
";Upgrade;nixy upgrade" "󰦗;Upgrade;nixy upgrade"
";Update;nixy update" "󰚰;Update;nixy update"
";Collect Garbage;nixy gc" ";Collect Garbage;nixy gc"
";Clean Boot Menu;nixy cb" "󰍜;Clean Boot Menu;nixy cb"
"󰌌;Hyprland Keybindings;nvim ${configDirectory}/docs/KEYBINDINGS-HYPRLAND.md"
"󰋩;Wallpapers;nvim ${inputs.nixy-wallpapers}/docs/MOBILE-VIEW.md"
) )
# Apply default icons if empty: # Apply default icons if empty:
@@ -37,13 +50,13 @@ let
[[ $1 == "" ]] && ui [[ $1 == "" ]] && ui
if [[ $1 == "rebuild" ]];then if [[ $1 == "rebuild" ]];then
sudo nixos-rebuild switch --flake ${config.var.configDirectory}#${config.var.hostname} sudo nixos-rebuild switch --flake ${configDirectory}#${hostname}
elif [[ $1 == "upgrade" ]];then elif [[ $1 == "upgrade" ]];then
sudo nixos-rebuild switch --upgrade --flake ${config.var.configDirectory}#${config.var.hostname} sudo nixos-rebuild switch --upgrade --flake ${configDirectory}#${hostname}
elif [[ $1 == "update" ]];then elif [[ $1 == "update" ]];then
cd ${config.var.configDirectory} && sudo nix flake update cd ${configDirectory} && nix flake update
elif [[ $1 == "gc" ]];then elif [[ $1 == "gc" ]];then
cd ${config.var.configDirectory} && sudo nix-collect-garbage -d cd ${configDirectory} && sudo nix-collect-garbage -d
elif [[ $1 == "cb" ]];then elif [[ $1 == "cb" ]];then
sudo /run/current-system/bin/switch-to-configuration boot sudo /run/current-system/bin/switch-to-configuration boot
elif [[ $1 == "remote" ]];then elif [[ $1 == "remote" ]];then
+14 -15
View File
@@ -1,27 +1,26 @@
{ pkgs, ... }: { pkgs, ... }:
let let
notif = pkgs.writeShellScriptBin "notif" '' notif = pkgs.writeShellScriptBin "notif" # bash
''
# Shell script to send custom notifications # Shell script to send custom notifications
# Usage: notif "sender_id" "message" ["description"]
NOTIF_FOLDER="/tmp/notif" NOTIF_FOLDER="/tmp/notif"
sender_id=$1 # To overwrite existing notifications sender_id=$1 # To overwrite existing notifications
message=$2 title=$2
extraargs="" description=$3
description=""
if [[ $3 == "extraargs="* ]]; then
extraargs=$(echo "$3" | sed 's/extraargs=//g')
else
description="$3"
extraargs="$4"
fi
[[ -d "$NOTIF_FOLDER" ]] || mkdir $NOTIF_FOLDER [[ -d "$NOTIF_FOLDER" ]] || mkdir $NOTIF_FOLDER
[[ -f "$NOTIF_FOLDER/$sender_id" ]] || echo "0" > "$NOTIF_FOLDER/$sender_id" [[ -f "$NOTIF_FOLDER/$sender_id" ]] || (echo "0" > "$NOTIF_FOLDER/$sender_id")
old_notification_id=$(cat "$NOTIF_FOLDER/$sender_id") old_notification_id=$(cat "$NOTIF_FOLDER/$sender_id")
[[ -z "$old_notification_id" ]] && old_notification_id=0
${pkgs.libnotify}/bin/notify-send "$message" \ ${pkgs.libnotify}/bin/notify-send \
$extraargs \ --replace-id="$old_notification_id" --print-id \
--replace-id="$old_notification_id" --print-id > "$NOTIF_FOLDER/$sender_id" --app-name="$sender_id" \
"$title" \
"$description" \
> "$NOTIF_FOLDER/$sender_id"
''; '';
in { home.packages = [ notif ]; } in { home.packages = [ pkgs.libnotify notif ]; }
+15 -13
View File
@@ -1,32 +1,34 @@
# - ## Screenshot
#-
#- This module provides a script to take screenshots using `grimblast` and `swappy`.
#-
#- - `screenshot [region|window|monitor] [swappy]` - Take a screenshot of the region, window, or monitor. Optionally, use `swappy` to copy the screenshot to the clipboard.
{ pkgs, ... }: { pkgs, ... }:
let let
screenshot = pkgs.writeShellScriptBin "screenshot" '' screenshot = pkgs.writeShellScriptBin "screenshot" ''
if [[ $2 == "swappy" ]];then if [[ $2 == "swappy" ]];then
folder="/tmp" folder="/tmp"
else else
folder="$HOME/Pictures/screenshots" folder="$HOME/Pictures"
fi fi
filename="$(date +%Y-%m-%d_%H:%M:%S).png" filename="$(date +%Y-%m-%d_%H:%M:%S).png"
mode="region" # Default to region
if [[ $1 == "window" ]];then if [[ $1 == "window" ]];then
mode="window" mode="active"
elif [[ $1 == "region" ]];then
mode="area"
elif [[ $1 == "monitor" ]];then elif [[ $1 == "monitor" ]];then
mode="output" mode="output"
fi fi
${pkgs.hyprshot}/bin/hyprshot -m $mode -o $folder -f $filename -s || exit 1 ${pkgs.grimblast}/bin/grimblast --notify --freeze save $mode "$folder/$filename" || exit 1
if [[ $2 == "swappy" ]];then if [[ $2 == "swappy" ]];then
${pkgs.swappy}/bin/swappy -f "$folder/$filename" -o "$HOME/Pictures/screenshots/$filename" ${pkgs.swappy}/bin/swappy -f "$folder/$filename" -o "$HOME/Pictures/$filename"
exit 0 exit 0
fi fi
message=" Screenshot saved"
${pkgs.libnotify}/bin/notify-send "$message" \
--icon="$folder/$filename" \
--replace-id="$(cat "/tmp/nixy-notification" 2>/dev/null || echo 0)" --print-id > "/tmp/nixy-notification"
''; '';
in { home.packages = [ pkgs.hyprshot screenshot ]; } in {
home.packages =
[ pkgs.hyprshot screenshot pkgs.slurp pkgs.grim pkgs.grimblast ];
}
+17 -65
View File
@@ -1,38 +1,31 @@
{ pkgs, config, ... }: # - ## Sound
#-
#- This module provides a set of scripts to control the volume of the default audio sink using `wpctl`.
#-
#- - `sound-up` increases the volume by 5%.
#- - `sound-down` decreases the volume by 5%.
#- - `sound-set [value]` sets the volume to the given value.
#- - `sound-toggle` toggles the mute state of the default audio sink.
{ pkgs, ... }:
let let
homedir = config.home.homeDirectory;
increments = "5"; increments = "5";
sound-change = pkgs.writeShellScriptBin "sound-change" '' sound-change = pkgs.writeShellScriptBin "sound-change" ''
sleep 0.05
[[ $1 == "mute" ]] && wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle [[ $1 == "mute" ]] && wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
[[ $1 == "up" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ "$2%+" [[ $1 == "up" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ ''${2-${increments}}%+
[[ $1 == "down" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ "$2%-" [[ $1 == "down" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ ''${2-${increments}}%-
[[ $1 == "set" ]] && wpctl set-volume @DEFAULT_AUDIO_SINK@ ''${2-100}%
sink_info=$(wpctl get-volume @DEFAULT_AUDIO_SINK@)
volume=$(echo "$(echo "$sink_info" | awk '{print $2}' | sed 's/%//')*100" | bc -l | xargs printf "%.0f")
muted=false
if [[ $sink_info == *"MUTED"* ]]; then
muted=true
fi
message=""
if [ $muted = true ]; then
message="󰖁 Muted"
else
message="󰕾 Volume: $volume%"
fi
notif "sound" "$message" "extraargs=-h int:value:$volume"
''; '';
sound-up = pkgs.writeShellScriptBin "sound-up" '' sound-up = pkgs.writeShellScriptBin "sound-up" ''
sound-change up ${increments} sound-change up ${increments}
''; '';
sound-set = pkgs.writeShellScriptBin "sound-set" ''
sound-change set ''${1-100}
'';
sound-down = pkgs.writeShellScriptBin "sound-down" '' sound-down = pkgs.writeShellScriptBin "sound-down" ''
sound-change down ${increments} sound-change down ${increments}
''; '';
@@ -40,47 +33,6 @@ let
sound-toggle = pkgs.writeShellScriptBin "sound-toggle" '' sound-toggle = pkgs.writeShellScriptBin "sound-toggle" ''
sound-change mute sound-change mute
''; '';
sound-output = pkgs.writeShellScriptBin "sound-output" ''
function parse_sinks(){
output=$(wpctl status)
sinks=($(echo "$output" | sed 's/ //' | awk '/Sinks:/ {flag=1; next} /^$/ {flag=0} flag' | sed 's/ /-/g'))
for sink in "''${sinks[@]}"; do
id=""
default=false
sink=$(echo "$sink" | sed 's/-/ /g')
sink_name=$(echo "$sink" | sed 's/\[vol:.*$//')
if [[ $sink_name == "*"* ]]; then
sink_name=$(echo "$sink_name" | sed 's/*//')
default=true
fi
id=$(echo "$sink_name" | cut -d'.' -f1)
sink_name=$(echo "$sink_name" | sed 's/^[ ]*//;s/[ ]*$//' )
sink_name=$(echo "$sink_name" | cut -d'.' -f2 )
if [[ $default == true ]];then
printf "*%s (%d)" "$sink_name" "$id"
else
printf " %s (%d)" "$sink_name" "$id"
fi
printf "\n"
done
}
choosed_sink=$(echo "$(parse_sinks)" | ${pkgs.fzf}/bin/fzf \
--border-label "Choose sound output" ) || exit 1
choosed_sink_id=$(echo "$choosed_sink" | sed 's/.*(\(.*\))/\1/')
wpctl set-default $choosed_sink_id
'';
in { in {
home.packages = home.packages = [ sound-change sound-up sound-down sound-toggle sound-set ];
[ sound-output sound-change sound-up sound-down sound-toggle ];
} }
-17
View File
@@ -1,17 +0,0 @@
# File runned at startup by Hyprland
{ pkgs, config, ... }:
let
startup = pkgs.writeShellScriptBin "startup" ''
# Startup is a script called by Hyprland on startup
# Because HM enabling services suck.
[[ ${toString config.var.sops} == "1" ]] && systemctl --user start sops-nix
battery-watch &
${pkgs.waybar}/bin/waybar &
wlr-randr --output "Unknown-1" --off # FIX: REMOVE WEIRD GHOST MONITOR
'';
in { home.packages = [ startup ]; }
+64
View File
@@ -0,0 +1,64 @@
# - ## System
#-
#- Usefull quick scripts
#-
#- - `menu` - Open wofi with drun mode. (wofi)
#- - `powermenu` - Open power dropdown menu. (wofi)
#- - `lock` - Lock the screen. (hyprlock)
{ pkgs, ... }:
let
menu = pkgs.writeShellScriptBin "menu"
# bash
''
if pgrep wofi; then
pkill wofi
else
wofi --show drun
fi
'';
powermenu = pkgs.writeShellScriptBin "powermenu"
# bash
''
if pgrep wofi; then
pkill wofi
else
options=(
"󰌾 Lock"
"󰍃 Logout"
" Suspend"
"󰑐 Reboot"
"󰿅 Shutdown"
)
selected=$(printf '%s\n' "''${options[@]}" | wofi --dmenu)
selected=''${selected:2}
case $selected in
"Lock")
${pkgs.hyprlock}/bin/hyprlock
;;
"Logout")
hyprctl dispatch exit
;;
"Suspend")
systemctl suspend
;;
"Reboot")
systemctl reboot
;;
"Shutdown")
systemctl poweroff
;;
esac
fi
'';
lock = pkgs.writeShellScriptBin "lock"
# bash
''
${pkgs.hyprlock}/bin/hyprlock
'';
in { home.packages = [ menu powermenu lock ]; }
+7
View File
@@ -0,0 +1,7 @@
# Batsignal is a simple utility to send battery notifications.
{
services.batsignal = {
enable = true;
extraArgs = [ "-c 10" "-w 30" "-f disabled" ];
};
}
+17
View File
@@ -0,0 +1,17 @@
# Clipman allows you to save and retrieve clipboard history.
{ pkgs, ... }:
let
clipboard-clear = pkgs.writeShellScriptBin "clipboard-clear" ''
clipman clear --all
'';
clipboard = pkgs.writeShellScriptBin "clipboard" ''
clipman pick --tool=wofi
'';
in {
wayland.windowManager.hyprland.settings.exec-once =
[ "${clipboard-clear}" "wl-paste -t text --watch clipman store" ];
home.packages = with pkgs; [ clipman clipboard clipboard-clear ];
services.clipman.enable = true;
}
-83
View File
@@ -1,83 +0,0 @@
{ config, pkgs, ... }: {
home.packages = with pkgs; [ libnotify ];
services.dunst = {
enable = true;
iconTheme = {
name = "Moka";
package = pkgs.moka-icon-theme;
};
settings = {
global = {
rounded = "yes";
origin = "top-center";
monitor = "0";
alignment = "center";
vertical_alignment = "center";
width = "400";
height = "400";
scale = 0;
gap_size = 0;
progress_bar = true;
transparency = 0;
text_icon_padding = 0;
separator_color = "frame";
sort = "yes";
idle_threshold = 120;
line_height = 0;
markup = "full";
show_age_threshold = 60;
ellipsize = "middle";
ignore_newline = "no";
stack_duplicates = true;
sticky_history = "yes";
history_length = 20;
always_run_script = true;
corner_radius = config.var.theme.rounding;
follow = "mouse";
font = config.var.theme.font;
format = "<b>%s</b>\\n%b";
progress_bar_corner_radius = config.var.theme.rounding - 10;
#format = ''
# <span foreground='#${config.var.theme.colors.accent}'><b>%s %p</b></span>
# %b'';
frame_color = "#" + config.var.theme.colors.bg;
highlight = "#" + config.var.theme.colors.accent;
foreground = "#" + config.var.theme.colors.fg;
frame_width = 1;
offset = "0x10";
horizontal_padding = 10;
icon_position = "left";
indicate_hidden = "yes";
min_icon_size = 0;
max_icon_size = 64;
mouse_left_click = "do_action, close_current";
mouse_middle_click = "close_current";
mouse_right_click = "close_all";
padding = 10;
plain_text = "no";
separator_height = 2;
show_indicators = "yes";
shrink = "no";
word_wrap = "yes";
browser = "${pkgs.qutebrowser}/bin/qutebrowser";
};
fullscreen_delay_everything = { fullscreen = "delay"; };
urgency_critical = {
background = "#" + config.var.theme.colors.c1;
foreground = "#" + config.var.theme.colors.c0;
};
urgency_low = {
background = "#" + config.var.theme.colors.bgalt;
foreground = "#" + config.var.theme.colors.fgalt;
};
urgency_normal = {
background = "#" + config.var.theme.colors.bgalt;
foreground = "#" + config.var.theme.colors.fgalt;
};
};
};
}
+110 -65
View File
@@ -1,4 +1,29 @@
{ config, pkgs, ... }: { # GTK & QT theme configuration
{ config, pkgs, lib, ... }:
let
accent = "#${config.lib.stylix.colors.base0D}";
foreground = "#${config.lib.stylix.colors.base05}";
background = "#${config.lib.stylix.colors.base00}";
background-alt = "#${config.lib.stylix.colors.base01}";
c0 = "#${config.lib.stylix.colors.base00}";
c1 = "#${config.lib.stylix.colors.base08}";
c2 = "#${config.lib.stylix.colors.base0B}";
c3 = "#${config.lib.stylix.colors.base0A}";
c4 = "#${config.lib.stylix.colors.base0D}";
c5 = "#${config.lib.stylix.colors.base0E}";
c6 = "#${config.lib.stylix.colors.base0C}";
c7 = "#${config.lib.stylix.colors.base05}";
c8 = "#${config.lib.stylix.colors.base03}";
c9 = "#${config.lib.stylix.colors.base08}";
c10 = "#${config.lib.stylix.colors.base0B}";
c11 = "#${config.lib.stylix.colors.base0A}";
c12 = "#${config.lib.stylix.colors.base0D}";
c13 = "#${config.lib.stylix.colors.base0E}";
c14 = "#${config.lib.stylix.colors.base0C}";
c15 = "#${config.lib.stylix.colors.base07}";
in {
qt = { qt = {
enable = true; enable = true;
@@ -9,89 +34,109 @@
gtk = { gtk = {
enable = true; enable = true;
theme = { name = "FlatColor"; }; theme = lib.mkForce { name = "FlatColor"; };
iconTheme = { iconTheme = {
package = pkgs.moka-icon-theme; package = pkgs.kora-icon-theme;
name = "Moka"; name = "Kora";
}; };
font = { font = { name = config.stylix.fonts.serif.name; };
name = config.var.theme.font;
size = config.var.theme.font-size;
};
};
home.pointerCursor = { gtk3.extraConfig = { gtk-application-prefer-dark-theme = 1; };
gtk.enable = true;
package = pkgs.bibata-cursors; gtk4.extraConfig = { gtk-application-prefer-dark-theme = 1; };
name = "Bibata-Modern-Classic";
size = 14;
}; };
home.file = { home.file = {
".local/share/themes/FlatColor" = { ".local/share/themes/FlatColor" = {
recursive = true; recursive = true;
source = ./theme; source = pkgs.stdenv.mkDerivation {
name = "FlatColor";
src = pkgs.fetchFromGitHub {
owner = "jasperro";
repo = "FlatColor";
rev = "0a56c50e8c5e2ad35f6174c19a00e01b30874074";
hash = "sha256-P8RnYTk9Z1rCBEEMLTVRrNr5tUM/Pc9dsdMtpHd1Y18=";
};
buildPhase = ''
mkdir -p $out
# delete the default gtk-color-scheme:
file="./gtk-2.0/gtkrc"
sed -i '3,29d' $file
sed -i '3i include "../colors2"' $file
file="./gtk-3.0/gtk.css"
sed -i '2,10d' $file
sed -i '2i @import url("../colors3");' $file
file="./gtk-3.20/gtk.css"
sed -i '2,26d' $file
sed -i '2i @import url("../colors3");' $file
cp -r . $out
'';
};
}; };
".local/share/themes/FlatColor/colors2".text = '' ".local/share/themes/FlatColor/colors2".text = ''
bg_color:#${config.var.theme.colors.bg} bg_color:${background}
color0:#${config.var.theme.colors.c0} color0:${c0}
color1:#${config.var.theme.colors.c1} color1:${c1}
color2:#${config.var.theme.colors.c2} color2:${c2}
color3:#${config.var.theme.colors.c3} color3:${c3}
color4:#${config.var.theme.colors.c4} color4:${c4}
color5:#${config.var.theme.colors.c5} color5:${c5}
color6:#${config.var.theme.colors.c6} color6:${c6}
color7:#${config.var.theme.colors.c7} color7:${c7}
color8:#${config.var.theme.colors.c8} color8:${c8}
color9:#${config.var.theme.colors.c9} color9:${c9}
color10:#${config.var.theme.colors.c10} color10:${c10}
color11:#${config.var.theme.colors.c11} color11:${c11}
color12:#${config.var.theme.colors.c12} color12:${c12}
color13:#${config.var.theme.colors.c13} color13:${c13}
color14:#${config.var.theme.colors.c14} color14:${c14}
color15:#${config.var.theme.colors.c15} color15:${c15}
text_color:#${config.var.theme.colors.fg} text_color:${foreground}
selected_bg_color:#${config.var.theme.colors.accent} selected_bg_color:${accent}
selected_fg_color:#${config.var.theme.colors.accentFg} selected_fg_color:${foreground}
tooltip_bg_color:#${config.var.theme.colors.bgalt} tooltip_bg_color:${background-alt}
tooltip_fg_color:#${config.var.theme.colors.fgalt} tooltip_fg_color:${foreground}
titlebar_bg_color:#${config.var.theme.colors.bgalt} titlebar_bg_color:${background}
titlebar_fg_color:#${config.var.theme.colors.fgalt} titlebar_fg_color:${foreground}
menu_bg_color:#${config.var.theme.colors.bgalt} menu_bg_color:${background-alt}
menu_fg_color:#${config.var.theme.colors.fgalt} menu_fg_color:${foreground}
link_color:#${config.var.theme.colors.accent} link_color:${accent}
''; '';
".local/share/themes/FlatColor/colors3".text = '' ".local/share/themes/FlatColor/colors3".text = ''
@define-color color0 #${config.var.theme.colors.c0}; @define-color color0 ${c0};
@define-color color1 #${config.var.theme.colors.c1}; @define-color color1 ${c1};
@define-color color2 #${config.var.theme.colors.c2}; @define-color color2 ${c2};
@define-color color3 #${config.var.theme.colors.c3}; @define-color color3 ${c3};
@define-color color4 #${config.var.theme.colors.c4}; @define-color color4 ${c4};
@define-color color5 #${config.var.theme.colors.c5}; @define-color color5 ${c5};
@define-color color6 #${config.var.theme.colors.c6}; @define-color color6 ${c6};
@define-color color7 #${config.var.theme.colors.c7}; @define-color color7 ${c7};
@define-color color8 #${config.var.theme.colors.c8}; @define-color color8 ${c8};
@define-color color9 #${config.var.theme.colors.c9}; @define-color color9 ${c9};
@define-color color10 #${config.var.theme.colors.c10}; @define-color color10 ${c10};
@define-color color11 #${config.var.theme.colors.c11}; @define-color color11 ${c11};
@define-color color12 #${config.var.theme.colors.c12}; @define-color color12 ${c12};
@define-color color13 #${config.var.theme.colors.c13}; @define-color color13 ${c13};
@define-color color14 #${config.var.theme.colors.c14}; @define-color color14 ${c14};
@define-color color15 #${config.var.theme.colors.c15}; @define-color color15 ${c15};
@define-color selected_bg_color #${config.var.theme.colors.accent}; @define-color selected_bg_color ${accent};
@define-color selected_fg_color #${config.var.theme.colors.accentFg}; @define-color selected_fg_color ${foreground};
@define-color bg_color ${background};
@define-color bg_color #${config.var.theme.colors.bg}; @define-color fg_color ${foreground};
@define-color fg_color #${config.var.theme.colors.fg};
@define-color base_color @bg_color; @define-color base_color @bg_color;
@define-color text_color @fg_color; @define-color text_color @fg_color;
@define-color text_color_disabled mix(@text_color, @base_color, 0.4); @define-color text_color_disabled mix(@text_color, @base_color, 0.4);
@define-color tooltip_bg_color #${config.var.theme.colors.bgalt}; @define-color tooltip_bg_color ${background-alt};
@define-color tooltip_fg_color #${config.var.theme.colors.fgalt}; @define-color tooltip_fg_color ${foreground};
''; '';
}; };
} }
-771
View File
@@ -1,771 +0,0 @@
#modded Numix gtkrc
gtk-color-scheme = "include ../colors2"
gtk-auto-mnemonics = 1
# Default Style
# DO --NOT-- CHANGE ACTIVE
# IT's THE COLOR THAT WPGTK REPLACES
# FEEL FREE TO MODIFY EVERYTHING ELSE IN gtkrc.base
style "murrine-default" {
GtkArrow::arrow-scaling= 0.6
GtkButton::child-displacement-x = 0
GtkButton::child-displacement-y = 0
GtkButton::default-border = { 0, 0, 0, 0 }
GtkButtonBox::child-min-height = 26
GtkCheckButton::indicator-size = 16
# The following line hints to gecko (and possibly other appliations)
# that the entry should be drawn transparently on the canvas.
# Without this, gecko will fill in the background of the entry.
GtkEntry::honors-transparent-bg-hint = 1
GtkEntry::state-hint = 0
GtkExpander::expander-size = 16
GtkImage::x-ayatana-indicator-dynamic = 1
GtkMenu::horizontal-padding = 0
GtkMenu::vertical-padding = 0
GtkMenuBar::internal-padding = 0
GtkMenuBar::window-dragging = 1
GtkMenuItem::arrow-scaling= 0.5
GtkPaned::handle-size = 1
GtkProgressBar::min-horizontal-bar-height = 12
GtkProgressBar::min-vertical-bar-width = 12
GtkRange::trough-border = 0
GtkRange::slider-width = 8
GtkRange::stepper-size = 12
GtkRange::stepper_spacing = 0
GtkRange::trough-under-steppers = 1
GtkScale::slider-length = 16
GtkScale::slider-width = 16
GtkScale::trough-side-details = 1
GtkScrollbar::activate-slider = 1
GtkScrollbar::has-backward-stepper = 0
GtkScrollbar::has-forward-stepper = 0
GtkScrollbar::has-secondary-backward-stepper = 0
GtkScrollbar::has-secondary-forward-stepper = 0
GtkScrollbar::min-slider-length = 80
GtkScrollbar::slider-width = 8
GtkScrollbar::trough-border = 0
GtkScrolledWindow::scrollbar-spacing = 0
GtkScrolledWindow::scrollbars-within-bevel = 1
GtkSeparatorMenuItem::horizontal-padding = 0
GtkToolbar::internal-padding = 0
GtkTreeView::expander-size = 11
GtkTreeView::vertical-separator = 0
GtkWidget::focus-line-width = 1
# The following line prevents the Firefox tabs
# from jumping a few pixels when you create a new tab
GtkWidget::focus-padding = 0
GtkWidget::wide-separators = 1
GtkWidget::separator-width = 1
GtkWidget::separator-height = 1
GtkWindow::resize-grip-height = 0
GtkWindow::resize-grip-width = 0
WnckTasklist::fade-overlay-rect = 0
GnomeHRef::link_color = @link_color
GtkHTML::link-color = @link_color
GtkIMHtmlr::hyperlink-color = @link_color
GtkIMHtml::hyperlink-color = @link_color
GtkWidget::link-color = @link_color
GtkWidget::visited-link-color = @text_color
GtkToolbar::shadow-type = GTK_SHADOW_NONE # Makes toolbars flat and unified
GtkMenuBar::shadow-type = GTK_SHADOW_NONE # Makes menubars flat and unified
xthickness = 1
ythickness = 1
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.02, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = @bg_color
bg[INSENSITIVE] = @bg_color
base[NORMAL] = shade(0.85, @color0)
base[PRELIGHT] = shade (0.85, @color0)
base[SELECTED] = @selected_bg_color
base[ACTIVE] = @selected_bg_color
base[INSENSITIVE] = shade (0.85, @bg_color)
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @selected_fg_color
text[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {
animation = FALSE
arrowstyle = 1 # 0 = normal arrows, 1 = filled arrows
border_shades = { 1.0, 1.0 } # gradient to draw on border
colorize_scrollbar = TRUE
comboboxstyle = 0 # 0 = normal combobox, 1 = colorized combobox below arrow
contrast = 0.0 # overal contrast with borders
focusstyle = 1 # 0 = none, 1 = grey dotted, 2 = colored with fill, 3 = colored glow
glazestyle = 0 # 0 = flat highlight, 1 = curved highlight, 2 = concave, 3 = top curved highlight, 4 = beryl highlight
glowstyle = 0 # 0 = glow on top, 1 = glow on bottom, 2 = glow on top and bottom, 3 = glow on middle vertically, 4 = glow on middle horizontally, 5 = glow on all sides
glow_shade = 1.0 # amount of glow
gradient_shades = { 1.0, 1.0, 1.0, 1.0 } # gradient to draw on widgets
highlight_shade = 1.0 # amount of highlight
lightborder_shade = 1.0 # amount of inset light border
lightborderstyle = 1 # 0 = lightborder on top side, 1 = lightborder on all sides
listviewheaderstyle = 0 # 0 = flat, 1 = glassy, 2 = raised
listviewstyle = 0 # 0 = none, 1 = dotted, 2 = line
menubaritemstyle = 0 # 0 = menuitem look, 1 = button look
menubarstyle = 0 # 0 = flat, 1 = glassy, 2 = gradient, 3 = striped
menuitemstyle = 0 # 0 = flat, 1 = glassy, 2 = striped
menustyle = 0 # 0 = none, 1 = vertical striped
progressbarstyle = 0 # 0 = none, 1 = diagonal striped, 2 = vertical striped
reliefstyle = 0 # 0 = flat, 1 = inset, 2 = shadow, 3 = shadow with gradient, 4 = stronger shadow with gradient
roundness = 0 # roundness of widgets
scrollbarstyle = 0 # 0 = none, 1 = circles, 2 = handles, 3 = diagonal stripes, 4 = diagonal stripes and handles, 5 = horizontal stripes, 6 = horizontal stripes and handles
sliderstyle = 0 # 0 = none, 1 = handles
stepperstyle = 1 # 0 = standard, 1 = integrated stepper handles
toolbarstyle = 0 # 0 = flat, 1 = glassy, 2 = gradient
}
}
style "murrine-wide" {
xthickness = 2
ythickness = 2
}
style "murrine-wider" {
xthickness = 3
ythickness = 3
}
style "murrine-thin" {
xthickness = 0
ythickness = 0
}
# Notebook
style "murrine-notebook-bg" {
bg[NORMAL] = @bg_color
bg[ACTIVE] = shade (0.70, @bg_color)
}
style "murrine-notebook" = "murrine-notebook-bg" {
xthickness = 2
ythickness = 2
engine "murrine" {
roundness = 0
}
}
# Various Standard Widgets
style "murrine-button" = "murrine-wider" {
bg[NORMAL] = shade (1.3, @bg_color)
bg[PRELIGHT] = shade (0.80, @selected_bg_color)
bg[ACTIVE] = shade (1.00, @selected_bg_color)
bg[INSENSITIVE] = shade (0.85, @bg_color)
engine "murrine" {
}
}
style "murrine-scrollbar" {
bg[NORMAL] = @bg_color
bg[PRELIGHT] = mix (0.31, @text_color, @bg_color)
bg[ACTIVE] = @selected_bg_color
engine "murrine" {
roundness = 0
contrast = 0.0
border_shades = { 0.9, 0.9 }
trough_shades = { 0.97, 0.97 }
trough_border_shades = { 1.0, 1.0 }
}
}
style "murrine-overlay-scrollbar" {
bg[ACTIVE] = shade (0.8, @bg_color)
bg[INSENSITIVE] = shade (0.97, @bg_color)
base[SELECTED] = shade (0.6, @bg_color)
base[INSENSITIVE] = shade (0.85, @bg_color)
}
style "murrine-scale" = "murrine-thin" {
bg[NORMAL] = @bg_color
bg[ACTIVE] = @bg_color
bg[SELECTED] = @selected_bg_color
bg[INSENSITIVE] = shade (0.95, @bg_color)
engine "murrine" {
roundness = 8
gradient_shades = { 1.08, 1.08, 1.08, 1.08 }
border_shades = { 1.0, 1.0 }
trough_shades = { 1.08, 1.08 }
trough_border_shades = { 0.8, 0.8 }
}
}
style "murrine-progressbar" = "murrine-thin" {
bg[NORMAL] = @bg_color
bg[ACTIVE] = shade(0.60, @bg_color)
fg[PRELIGHT] = @selected_fg_color
engine "murrine" {
roundness = 0
border_shades = { 1.2, 1.2 }
trough_border_shades = { 0.8, 0.8 }
}
}
style "murrine-treeview-header" = "murrine-button" {
engine "murrine" {
roundness = 0
}
}
style "murrine-treeview" {
engine "murrine" {
roundness = 0
}
}
style "murrine-frame-title" {
fg[NORMAL] = lighter (@text_color)
}
style "murrine-tooltips" {
xthickness = 5
ythickness = 5
bg[NORMAL] = @tooltip_bg_color
bg[SELECTED] = @tooltip_bg_color
fg[NORMAL] = @text_color
engine "murrine" {
textstyle = 0
roundness = 0
rgba = FALSE
}
}
style "murrine-spinbutton" = "murrine-button" {
engine "murrine" {
}
}
style "murrine-radiocheck" = "murrine-default" {
bg[SELECTED] = @bg_color
text[NORMAL] = @selected_bg_color
text[PRELIGHT] = @selected_bg_color
}
style "murrine-entry" = "murrine-wider" {
bg[SELECTED] = @selected_bg_color
engine "murrine" {
border_shades = { 1.15, 1.15 }
}
}
style "metacity-frame" = "murrine-default" {
bg[SELECTED] = @selected_bg_color
}
style "murrine-statusbar" {
bg[NORMAL] = @bg_color
}
style "murrine-comboboxentry" = "murrine-entry" { }
style "murrine-hscale" = "murrine-scale" { }
style "murrine-vscale" = "murrine-scale" { }
style "murrine-hscrollbar" = "murrine-scrollbar" { }
style "murrine-vscrollbar" = "murrine-scrollbar" { }
# Menus
style "murrine-menu" = "murrine-thin" {
bg[NORMAL] = shade(0.8, @menu_bg_color)
bg[PRELIGHT] = @selected_bg_color
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = @menu_bg_color
bg[INSENSITIVE] = @menu_bg_color
fg[NORMAL] = @menu_fg_color
fg[PRELIGHT] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @selected_fg_color
fg[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color)
text[NORMAL] = @menu_fg_color
text[PRELIGHT] = @selected_fg_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @selected_fg_color
text[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color)
engine "murrine" {
roundness = 0
}
}
style "murrine-menu-item" = "murrine-wider" {
bg[PRELIGHT] = @selected_bg_color
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = @selected_bg_color
fg[NORMAL] = @menu_fg_color # Fix for XFCE menu text
fg[PRELIGHT] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @selected_fg_color
fg[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color)
engine "murrine" {
textstyle = 0
border_shades = { 1.2, 1.2 }
}
}
style "murrine-separator-menu-item" = "murrine-thin" { }
style "murrine-menubar" {
bg[NORMAL] = @bg_color
bg[PRELIGHT] = mix (0.21, @text_color, @bg_color)
bg[SELECTED] = mix (0.21, @text_color, @bg_color)
bg[ACTIVE] = shade (0.9, @bg_color)
bg[INSENSITIVE] = @bg_color
fg[NORMAL] = @text_color
fg[PRELIGHT] = shade (1.08, @text_color)
fg[SELECTED] = shade (1.08, @text_color)
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {
roundness = 0
}
}
style "murrine-menubaritem" {
bg[NORMAL] = @bg_color
bg[PRELIGHT] = @selected_bg_color
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = shade (0.9, @bg_color)
bg[INSENSITIVE] = @bg_color
fg[NORMAL] = @text_color
fg[PRELIGHT] = shade (1.08, @text_color)
fg[SELECTED] = shade (1.08, @text_color)
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {
roundness = 0
}
}
# Toolbars
style "murrine-toolbar" = "murrine-thin" {
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.02, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = shade (0.9, @bg_color)
bg[INSENSITIVE] = @bg_color
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {
}
}
style "murrine-toolbutton" = "murrine-button" {
bg[NORMAL] = shade (1.08, @bg_color)
bg[PRELIGHT] = shade (1.10, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = shade (0.95, @bg_color)
bg[INSENSITIVE] = shade (0.85, @bg_color)
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {
}
}
class "GtkToolbar" style "murrine-toolbar"
class "GtkHandleBox" style "murrine-toolbar"
widget_class "*Toolbar*.*Separator*" style "murrine-toolbar"
# Panels
style "murrine-panel" = "murrine-thin" {
xthickness = 2
bg[NORMAL] = @menu_bg_color
bg[PRELIGHT] = shade(0.8, @selected_bg_color)
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = @selected_bg_color
bg[INSENSITIVE] = @menu_bg_color
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @text_color
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = shade(0.8, @text_color)
base[NORMAL] = @menu_bg_color
base[PRELIGHT] = mix (0.21, @text_color, @menu_bg_color)
base[SELECTED] = @selected_bg_color
base[ACTIVE] = @selected_bg_color
base[INSENSITIVE] = @menu_bg_color
text[NORMAL] = @text_color
text[PRELIGHT] = shade (1.08, @text_color)
text[SELECTED] = shade (1.08, @text_color)
text[ACTIVE] = @text_color
text[INSENSITIVE] = mix (0.5, @menu_bg_color, @text_color)
engine "murrine" {
roundness = 0
contrast = 0.0
}
}
widget "*PanelWidget*" style "murrine-panel"
widget "*PanelApplet*" style "murrine-panel"
widget "*fast-user-switch*" style "murrine-panel"
widget "*CPUFreq*Applet*" style "murrine-panel"
widget "*indicator-applet*" style "murrine-panel"
class "PanelApp*" style "murrine-panel"
class "PanelToplevel*" style "murrine-panel"
widget_class "*PanelToplevel*" style "murrine-panel"
widget_class "*notif*" style "murrine-panel"
widget_class "*Notif*" style "murrine-panel"
widget_class "*Tray*" style "murrine-panel"
widget_class "*tray*" style "murrine-panel"
widget_class "*computertemp*" style "murrine-panel"
widget_class "*Applet*Tomboy*" style "murrine-panel"
widget_class "*Applet*Netstatus*" style "murrine-panel"
widget "*gdm-user-switch-menubar*" style "murrine-panel"
style "bold-panel-item" {
font_name = "Bold"
engine "murrine" {
roundness = 0
}
}
widget "*Panel*MenuBar*" style "bold-panel-item"
widget "*gimmie*" style "bold-panel-item"
# widget_class "*Mail*" style "murrine-panel" # Disabled to fix Evolution bug
# class "*Panel*" style "murrine-panel" # Disabled to fix bug
# XFCE Styles
style "workspace-switcher" = "murrine-panel" {
bg[SELECTED] = @selected_bg_color
}
style "xfce-header" {
bg[NORMAL] = shade (0.9, @bg_color)
base[NORMAL] = shade (1.18, @bg_color)
}
style "xfdesktop-windowlist" {
bg[NORMAL] = @bg_color
fg[INSENSITIVE] = shade (0.95, @bg_color)
text[INSENSITIVE] = shade (0.95, @bg_color)
}
style "xfdesktop-icon-view" {
XfdesktopIconView::label-alpha = 0
XfdesktopIconView::selected-label-alpha = 60
XfdesktopIconVIew::ellipsize-icon-labels = 1
base[NORMAL] = @selected_bg_color
base[SELECTED] = @selected_bg_color
base[ACTIVE] = @selected_bg_color
fg[NORMAL] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @selected_fg_color
engine "murrine" {
textstyle = 5
text_shade = 0.05
}
}
style "xfwm-tabwin" {
Xfwm4TabwinWidget::border-width = 0
Xfwm4TabwinWidget::icon-size = 64
bg[NORMAL] = @menu_bg_color
fg[NORMAL] = @menu_fg_color
engine "murrine" {
focusstyle = 0
}
}
style "xfsm-logout" {
bg[NORMAL] = @menu_bg_color
bg[ACTIVE] = @menu_bg_color
bg[PRELIGHT] = shade (1.1, @menu_bg_color)
bg[SELECTED] = shade (0.5, @menu_bg_color)
bg[INSENSITIVE] = shade (1.3, @menu_bg_color)
fg[NORMAL] = @menu_fg_color
fg[PRELIGHT] = @menu_fg_color
text[NORMAL] = @menu_fg_color
engine "murrine" {
}
}
style "xfsm-logout-button" {
bg[NORMAL] = shade (1.2, @menu_bg_color)
bg[PRELIGHT] = shade (1.4, @menu_bg_color)
engine "murrine" {
}
}
widget "*WnckPager*" style "workspace-switcher"
widget "*Xfce*Panel*" style "murrine-panel"
class "*Xfce*Panel*" style "murrine-panel"
# Thunar Styles
style "sidepane" {
base[NORMAL] = @bg_color
base[INSENSITIVE] = shade(0.90, @bg_color)
bg[NORMAL] = @bg_color
text[NORMAL] = @text_color
}
widget_class "*ThunarShortcutsView*" style "sidepane"
widget_class "*ThunarTreeView*" style "sidepane"
widget_class "*ThunarLocationEntry*" style "murrine-entry"
# Gtk2 Open-File Dialog
widget_class "*GtkFileChooserWidget.GtkFileChooserDefault.GtkVBox.GtkHPaned.GtkVBox.GtkScrolledWindow.GtkTreeView*" style "sidepane"
widget_class "*GtkFileChooserWidget.GtkFileChooserDefault.GtkVBox.GtkHPaned.GtkVBox.GtkScrolledWindow.<GtkTreeView>.<GtkButton>" style "murrine-treeview-header"
# Google Chrome/Chromium Styles (requires 9.0.597 or newer)
style "chromium-toolbar-button" {
engine "murrine" {
roundness = 2
textstyle = 0
}
}
style "chrome-gtk-frame" {
ChromeGtkFrame::frame-color = @titlebar_bg_color
ChromeGtkFrame::inactive-frame-color = @titlebar_bg_color
ChromeGtkFrame::frame-gradient-size = 0
ChromeGtkFrame::frame-gradient-color = @titlebar_bg_color
ChromeGtkFrame::incognito-frame-color = @titlebar_bg_color
ChromeGtkFrame::incognito-inactive-frame-color = @titlebar_bg_color
ChromeGtkFrame::incognito-frame-gradient-size = 0
ChromeGtkFrame::incognito-frame-gradient-color = @titlebar_bg_color
ChromeGtkFrame::scrollbar-trough-color = @bg_color
ChromeGtkFrame::scrollbar-slider-normal-color = mix (0.21, @text_color, @bg_color)
ChromeGtkFrame::scrollbar-slider-prelight-color = mix (0.31, @text_color, @bg_color)
}
class "ChromeGtkFrame" style "chrome-gtk-frame"
widget_class "*Chrom*Button*" style "chromium-toolbar-button"
# General Styles
class "GtkWidget" style "murrine-default"
class "GtkFrame" style "murrine-wide"
class "MetaFrames" style "metacity-frame"
class "GtkWindow" style "metacity-frame"
class "GtkSeparator" style "murrine-wide"
class "GtkCalendar" style "murrine-wide"
class "GtkSpinButton" style "murrine-spinbutton"
class "GtkScale" style "murrine-scale"
class "GtkVScale" style "murrine-vscale"
class "GtkHScale" style "murrine-hscale"
class "GtkScrollbar" style "murrine-scrollbar"
class "GtkVScrollbar" style "murrine-vscrollbar"
class "GtkHScrollbar" style "murrine-hscrollbar"
class "GtkRadio*" style "murrine-radiocheck"
class "GtkCheck*" style "murrine-radiocheck"
class "GtkEntry" style "murrine-entry"
widget_class "*<GtkNotebook>" style "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkEventBox>" style "murrine-notebook-bg"
widget_class "*<GtkNotebook>*<GtkDrawingArea>" style "murrine-notebook-bg"
widget_class "*<GtkNotebook>*<GtkLayout>" style "murrine-notebook-bg"
widget_class "*.GtkNotebook.*.GtkViewport" style "murrine-notebook"
widget_class "*<GtkButton>" style "murrine-button"
widget_class "*<GtkStatusbar>*" style "murrine-statusbar"
widget_class "*<GtkProgress>" style "murrine-progressbar"
widget_class "*<GtkProgressBar>" style "murrine-progressbar"
widget_class "*<GtkComboBoxEntry>*" style "murrine-comboboxentry"
widget_class "*<GtkCombo>*" style "murrine-comboboxentry"
widget_class "*<GtkMenu>*" style "murrine-menu"
widget_class "*<GtkMenuItem>*" style "murrine-menu-item"
widget_class "*<GtkSeparatorMenuItem>*" style "murrine-separator-menu-item"
widget_class "*Menu*.*Sepa*" style "murrine-separator-menu-item"
widget_class "*<GtkMenuBar>*" style "murrine-menubar"
widget_class "*<GtkMenuBar>*<GtkMenuItem>*" style "murrine-menubaritem"
widget_class "*GtkToolButton*" style "murrine-toolbutton"
widget_class "*GtkToggleToolButton*" style "murrine-toolbutton"
widget_class "*GtkMenuToolButton*" style "murrine-toolbutton"
widget_class "*GtkToolbar*Button" style "murrine-toolbutton"
widget_class "*.<GtkFrame>.<GtkLabel>" style "murrine-frame-title"
widget_class "*.<GtkTreeView>*" style "murrine-treeview"
widget_class "*.<GtkTreeView>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkCTree>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkList>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkCList>.<GtkButton>" style "murrine-treeview-header"
widget "gtk-tooltip*" style "murrine-tooltips"
widget_class "*<GtkScrolledWindow>*<OsScrollbar>" style "murrine-overlay-scrollbar"
# Workarounds and Non-Standard Styling
style "text-is-fg-color-workaround" {
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @text_color
text[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
}
widget_class "*.<GtkComboBox>.<GtkCellView>" style "text-is-fg-color-workaround"
style "fg-is-text-color-workaround" {
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[ACTIVE] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[INSENSITIVE] = darker (@text_color)
}
widget_class "*<GtkListItem>*" style "fg-is-text-color-workaround"
widget_class "*<GtkCList>" style "fg-is-text-color-workaround"
widget_class "*<EelEditableLabel>" style "fg-is-text-color-workaround"
style "murrine-evo-new-button-workaround" {
engine "murrine" {
toolbarstyle = 0
}
}
widget_class "EShellWindow.GtkVBox.BonoboDock.BonoboDockBand.BonoboDockItem*" style "murrine-evo-new-button-workaround"
style "inkscape-toolbar-fix" {
engine "murrine" {
gradient_shades = { 1.0, 1.0, 1.0, 1.0 }
highlight_shade = 1.0
}
}
#widget "*GtkHandleBox*" style "inkscape-toolbar-fix"
#widget "*HandleBox*CommandsToolbar*" style "inkscape-toolbar-fix"
#widget "*HandleBox*SnapToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*SelectToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*NodeToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*TweakToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*ZoomToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*StarToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*RectToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*3DBoxToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*ArcToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*SpiralToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*PencilToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*PenToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*CalligraphyToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*EraserToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*LPEToolToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*DropperToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*ConnectorToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*PaintbucketToolbar*" style "inkscape-toolbar-fix"
# Performance Fixes
style "performance-fix" {
engine "murrine" {
textstyle = 0
}
}
widget_class "*gtkmm__GtkWindow*" style "performance-fix" # Inkscape
widget_class "*GimpDisplayShell*" style "performance-fix" # Gimp
widget_class "*GimpToolbox*" style "performance-fix"
widget_class "*GimpMenuDock*" style "performance-fix"
widget "*OOoFixed*" style "performance-fix" # Openoffice/Libreoffice
widget_class "*MozContainer*" style "performance-fix" # Firefox (Not sure if this one does anything though.)
widget_class "*XfceHeading*" style "xfce-header"
widget_class "*XfceDesktop*" style "xfdesktop-windowlist"
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"
widget "xfwm4-tabwin*" style "xfwm-tabwin"
widget_class "*XfsmLogoutDialog*" style "xfsm-logout"
widget_class "*XfsmLogoutDialog*GtkButton" style "xfsm-logout-button"
-797
View File
@@ -1,797 +0,0 @@
#modded Numix gtkrc
gtk-color-scheme = "bg_color:{color0}
color0:{color0}
color1:{color1}
color2:{color2}
color3:{color3}
color4:{color4}
color5:{color5}
color6:{color6}
color7:{color7}
color8:{color8}
color9:{color9}
color10:{color10}
color11:{color11}
color12:{color12}
color13:{color13}
color14:{color14}
color15:{color15}
text_color:{color15}
selected_bg_color:{active}
selected_fg_color:{color15}
tooltip_bg_color:{color0}
tooltip_fg_color:{color15}
titlebar_bg_color:{color0}
titlebar_fg_color:{color15}
menu_bg_color:{color0}
menu_fg_color:{color15}
link_color:{active}"
gtk-auto-mnemonics = 1
# Default Style
# DO --NOT-- CHANGE ACTIVE
# IT's THE COLOR THAT WPGTK REPLACES
# FEEL FREE TO MODIFY EVERYTHING ELSE IN gtkrc.base
style "murrine-default" {{
GtkArrow::arrow-scaling= 0.6
GtkButton::child-displacement-x = 0
GtkButton::child-displacement-y = 0
GtkButton::default-border = {{ 0, 0, 0, 0 }}
GtkButtonBox::child-min-height = 26
GtkCheckButton::indicator-size = 16
# The following line hints to gecko (and possibly other appliations)
# that the entry should be drawn transparently on the canvas.
# Without this, gecko will fill in the background of the entry.
GtkEntry::honors-transparent-bg-hint = 1
GtkEntry::state-hint = 0
GtkExpander::expander-size = 16
GtkImage::x-ayatana-indicator-dynamic = 1
GtkMenu::horizontal-padding = 0
GtkMenu::vertical-padding = 0
GtkMenuBar::internal-padding = 0
GtkMenuBar::window-dragging = 1
GtkMenuItem::arrow-scaling= 0.5
GtkPaned::handle-size = 1
GtkProgressBar::min-horizontal-bar-height = 12
GtkProgressBar::min-vertical-bar-width = 12
GtkRange::trough-border = 0
GtkRange::slider-width = 8
GtkRange::stepper-size = 12
GtkRange::stepper_spacing = 0
GtkRange::trough-under-steppers = 1
GtkScale::slider-length = 16
GtkScale::slider-width = 16
GtkScale::trough-side-details = 1
GtkScrollbar::activate-slider = 1
GtkScrollbar::has-backward-stepper = 0
GtkScrollbar::has-forward-stepper = 0
GtkScrollbar::has-secondary-backward-stepper = 0
GtkScrollbar::has-secondary-forward-stepper = 0
GtkScrollbar::min-slider-length = 80
GtkScrollbar::slider-width = 8
GtkScrollbar::trough-border = 0
GtkScrolledWindow::scrollbar-spacing = 0
GtkScrolledWindow::scrollbars-within-bevel = 1
GtkSeparatorMenuItem::horizontal-padding = 0
GtkToolbar::internal-padding = 0
GtkTreeView::expander-size = 11
GtkTreeView::vertical-separator = 0
GtkWidget::focus-line-width = 1
# The following line prevents the Firefox tabs
# from jumping a few pixels when you create a new tab
GtkWidget::focus-padding = 0
GtkWidget::wide-separators = 1
GtkWidget::separator-width = 1
GtkWidget::separator-height = 1
GtkWindow::resize-grip-height = 0
GtkWindow::resize-grip-width = 0
WnckTasklist::fade-overlay-rect = 0
GnomeHRef::link_color = @link_color
GtkHTML::link-color = @link_color
GtkIMHtmlr::hyperlink-color = @link_color
GtkIMHtml::hyperlink-color = @link_color
GtkWidget::link-color = @link_color
GtkWidget::visited-link-color = @text_color
GtkToolbar::shadow-type = GTK_SHADOW_NONE # Makes toolbars flat and unified
GtkMenuBar::shadow-type = GTK_SHADOW_NONE # Makes menubars flat and unified
xthickness = 1
ythickness = 1
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.02, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = @bg_color
bg[INSENSITIVE] = @bg_color
base[NORMAL] = shade(0.85, @color0)
base[PRELIGHT] = shade (0.85, @color0)
base[SELECTED] = @selected_bg_color
base[ACTIVE] = @selected_bg_color
base[INSENSITIVE] = shade (0.85, @bg_color)
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @selected_fg_color
text[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {{
animation = FALSE
arrowstyle = 1 # 0 = normal arrows, 1 = filled arrows
border_shades = {{ 1.0, 1.0 }} # gradient to draw on border
colorize_scrollbar = TRUE
comboboxstyle = 0 # 0 = normal combobox, 1 = colorized combobox below arrow
contrast = 0.0 # overal contrast with borders
focusstyle = 1 # 0 = none, 1 = grey dotted, 2 = colored with fill, 3 = colored glow
glazestyle = 0 # 0 = flat highlight, 1 = curved highlight, 2 = concave, 3 = top curved highlight, 4 = beryl highlight
glowstyle = 0 # 0 = glow on top, 1 = glow on bottom, 2 = glow on top and bottom, 3 = glow on middle vertically, 4 = glow on middle horizontally, 5 = glow on all sides
glow_shade = 1.0 # amount of glow
gradient_shades = {{ 1.0, 1.0, 1.0, 1.0 }} # gradient to draw on widgets
highlight_shade = 1.0 # amount of highlight
lightborder_shade = 1.0 # amount of inset light border
lightborderstyle = 1 # 0 = lightborder on top side, 1 = lightborder on all sides
listviewheaderstyle = 0 # 0 = flat, 1 = glassy, 2 = raised
listviewstyle = 0 # 0 = none, 1 = dotted, 2 = line
menubaritemstyle = 0 # 0 = menuitem look, 1 = button look
menubarstyle = 0 # 0 = flat, 1 = glassy, 2 = gradient, 3 = striped
menuitemstyle = 0 # 0 = flat, 1 = glassy, 2 = striped
menustyle = 0 # 0 = none, 1 = vertical striped
progressbarstyle = 0 # 0 = none, 1 = diagonal striped, 2 = vertical striped
reliefstyle = 0 # 0 = flat, 1 = inset, 2 = shadow, 3 = shadow with gradient, 4 = stronger shadow with gradient
roundness = 0 # roundness of widgets
scrollbarstyle = 0 # 0 = none, 1 = circles, 2 = handles, 3 = diagonal stripes, 4 = diagonal stripes and handles, 5 = horizontal stripes, 6 = horizontal stripes and handles
sliderstyle = 0 # 0 = none, 1 = handles
stepperstyle = 1 # 0 = standard, 1 = integrated stepper handles
toolbarstyle = 0 # 0 = flat, 1 = glassy, 2 = gradient
}}
}}
style "murrine-wide" {{
xthickness = 2
ythickness = 2
}}
style "murrine-wider" {{
xthickness = 3
ythickness = 3
}}
style "murrine-thin" {{
xthickness = 0
ythickness = 0
}}
# Notebook
style "murrine-notebook-bg" {{
bg[NORMAL] = @bg_color
bg[ACTIVE] = shade (0.70, @bg_color)
}}
style "murrine-notebook" = "murrine-notebook-bg" {{
xthickness = 2
ythickness = 2
engine "murrine" {{
roundness = 0
}}
}}
# Various Standard Widgets
style "murrine-button" = "murrine-wider" {{
bg[NORMAL] = shade (1.3, @bg_color)
bg[PRELIGHT] = shade (0.80, @selected_bg_color)
bg[ACTIVE] = shade (1.00, @selected_bg_color)
bg[INSENSITIVE] = shade (0.85, @bg_color)
engine "murrine" {{
}}
}}
style "murrine-scrollbar" {{
bg[NORMAL] = @bg_color
bg[PRELIGHT] = mix (0.31, @text_color, @bg_color)
bg[ACTIVE] = @selected_bg_color
engine "murrine" {{
roundness = 0
contrast = 0.0
border_shades = {{ 0.9, 0.9 }}
trough_shades = {{ 0.97, 0.97 }}
trough_border_shades = {{ 1.0, 1.0 }}
}}
}}
style "murrine-overlay-scrollbar" {{
bg[ACTIVE] = shade (0.8, @bg_color)
bg[INSENSITIVE] = shade (0.97, @bg_color)
base[SELECTED] = shade (0.6, @bg_color)
base[INSENSITIVE] = shade (0.85, @bg_color)
}}
style "murrine-scale" = "murrine-thin" {{
bg[NORMAL] = @bg_color
bg[ACTIVE] = @bg_color
bg[SELECTED] = @selected_bg_color
bg[INSENSITIVE] = shade (0.95, @bg_color)
engine "murrine" {{
roundness = 8
gradient_shades = {{ 1.08, 1.08, 1.08, 1.08 }}
border_shades = {{ 1.0, 1.0 }}
trough_shades = {{ 1.08, 1.08 }}
trough_border_shades = {{ 0.8, 0.8 }}
}}
}}
style "murrine-progressbar" = "murrine-thin" {{
bg[NORMAL] = @bg_color
bg[ACTIVE] = shade(0.60, @bg_color)
fg[PRELIGHT] = @selected_fg_color
engine "murrine" {{
roundness = 0
border_shades = {{ 1.2, 1.2 }}
trough_border_shades = {{ 0.8, 0.8 }}
}}
}}
style "murrine-treeview-header" = "murrine-button" {{
engine "murrine" {{
roundness = 0
}}
}}
style "murrine-treeview" {{
engine "murrine" {{
roundness = 0
}}
}}
style "murrine-frame-title" {{
fg[NORMAL] = lighter (@text_color)
}}
style "murrine-tooltips" {{
xthickness = 5
ythickness = 5
bg[NORMAL] = @tooltip_bg_color
bg[SELECTED] = @tooltip_bg_color
fg[NORMAL] = @text_color
engine "murrine" {{
textstyle = 0
roundness = 0
rgba = FALSE
}}
}}
style "murrine-spinbutton" = "murrine-button" {{
engine "murrine" {{
}}
}}
style "murrine-radiocheck" = "murrine-default" {{
bg[SELECTED] = @bg_color
text[NORMAL] = @selected_bg_color
text[PRELIGHT] = @selected_bg_color
}}
style "murrine-entry" = "murrine-wider" {{
bg[SELECTED] = @selected_bg_color
engine "murrine" {{
border_shades = {{ 1.15, 1.15 }}
}}
}}
style "metacity-frame" = "murrine-default" {{
bg[SELECTED] = @selected_bg_color
}}
style "murrine-statusbar" {{
bg[NORMAL] = @bg_color
}}
style "murrine-comboboxentry" = "murrine-entry" {{ }}
style "murrine-hscale" = "murrine-scale" {{ }}
style "murrine-vscale" = "murrine-scale" {{ }}
style "murrine-hscrollbar" = "murrine-scrollbar" {{ }}
style "murrine-vscrollbar" = "murrine-scrollbar" {{ }}
# Menus
style "murrine-menu" = "murrine-thin" {{
bg[NORMAL] = shade(0.8, @menu_bg_color)
bg[PRELIGHT] = @selected_bg_color
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = @menu_bg_color
bg[INSENSITIVE] = @menu_bg_color
fg[NORMAL] = @menu_fg_color
fg[PRELIGHT] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @selected_fg_color
fg[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color)
text[NORMAL] = @menu_fg_color
text[PRELIGHT] = @selected_fg_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @selected_fg_color
text[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color)
engine "murrine" {{
roundness = 0
}}
}}
style "murrine-menu-item" = "murrine-wider" {{
bg[PRELIGHT] = @selected_bg_color
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = @selected_bg_color
fg[NORMAL] = @menu_fg_color # Fix for XFCE menu text
fg[PRELIGHT] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @selected_fg_color
fg[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color)
engine "murrine" {{
textstyle = 0
border_shades = {{ 1.2, 1.2 }}
}}
}}
style "murrine-separator-menu-item" = "murrine-thin" {{ }}
style "murrine-menubar" {{
bg[NORMAL] = @bg_color
bg[PRELIGHT] = mix (0.21, @text_color, @bg_color)
bg[SELECTED] = mix (0.21, @text_color, @bg_color)
bg[ACTIVE] = shade (0.9, @bg_color)
bg[INSENSITIVE] = @bg_color
fg[NORMAL] = @text_color
fg[PRELIGHT] = shade (1.08, @text_color)
fg[SELECTED] = shade (1.08, @text_color)
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {{
roundness = 0
}}
}}
style "murrine-menubaritem" {{
bg[NORMAL] = @bg_color
bg[PRELIGHT] = @selected_bg_color
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = shade (0.9, @bg_color)
bg[INSENSITIVE] = @bg_color
fg[NORMAL] = @text_color
fg[PRELIGHT] = shade (1.08, @text_color)
fg[SELECTED] = shade (1.08, @text_color)
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {{
roundness = 0
}}
}}
# Toolbars
style "murrine-toolbar" = "murrine-thin" {{
bg[NORMAL] = @bg_color
bg[PRELIGHT] = shade (1.02, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = shade (0.9, @bg_color)
bg[INSENSITIVE] = @bg_color
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {{
}}
}}
style "murrine-toolbutton" = "murrine-button" {{
bg[NORMAL] = shade (1.08, @bg_color)
bg[PRELIGHT] = shade (1.10, @bg_color)
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = shade (0.95, @bg_color)
bg[INSENSITIVE] = shade (0.85, @bg_color)
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
engine "murrine" {{
}}
}}
class "GtkToolbar" style "murrine-toolbar"
class "GtkHandleBox" style "murrine-toolbar"
widget_class "*Toolbar*.*Separator*" style "murrine-toolbar"
# Panels
style "murrine-panel" = "murrine-thin" {{
xthickness = 2
bg[NORMAL] = @menu_bg_color
bg[PRELIGHT] = shade(0.8, @selected_bg_color)
bg[SELECTED] = @selected_bg_color
bg[ACTIVE] = @selected_bg_color
bg[INSENSITIVE] = @menu_bg_color
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[SELECTED] = @text_color
fg[ACTIVE] = @text_color
fg[INSENSITIVE] = shade(0.8, @text_color)
base[NORMAL] = @menu_bg_color
base[PRELIGHT] = mix (0.21, @text_color, @menu_bg_color)
base[SELECTED] = @selected_bg_color
base[ACTIVE] = @selected_bg_color
base[INSENSITIVE] = @menu_bg_color
text[NORMAL] = @text_color
text[PRELIGHT] = shade (1.08, @text_color)
text[SELECTED] = shade (1.08, @text_color)
text[ACTIVE] = @text_color
text[INSENSITIVE] = mix (0.5, @menu_bg_color, @text_color)
engine "murrine" {{
roundness = 0
contrast = 0.0
}}
}}
widget "*PanelWidget*" style "murrine-panel"
widget "*PanelApplet*" style "murrine-panel"
widget "*fast-user-switch*" style "murrine-panel"
widget "*CPUFreq*Applet*" style "murrine-panel"
widget "*indicator-applet*" style "murrine-panel"
class "PanelApp*" style "murrine-panel"
class "PanelToplevel*" style "murrine-panel"
widget_class "*PanelToplevel*" style "murrine-panel"
widget_class "*notif*" style "murrine-panel"
widget_class "*Notif*" style "murrine-panel"
widget_class "*Tray*" style "murrine-panel"
widget_class "*tray*" style "murrine-panel"
widget_class "*computertemp*" style "murrine-panel"
widget_class "*Applet*Tomboy*" style "murrine-panel"
widget_class "*Applet*Netstatus*" style "murrine-panel"
widget "*gdm-user-switch-menubar*" style "murrine-panel"
style "bold-panel-item" {{
font_name = "Bold"
engine "murrine" {{
roundness = 0
}}
}}
widget "*Panel*MenuBar*" style "bold-panel-item"
widget "*gimmie*" style "bold-panel-item"
# widget_class "*Mail*" style "murrine-panel" # Disabled to fix Evolution bug
# class "*Panel*" style "murrine-panel" # Disabled to fix bug
# XFCE Styles
style "workspace-switcher" = "murrine-panel" {{
bg[SELECTED] = @selected_bg_color
}}
style "xfce-header" {{
bg[NORMAL] = shade (0.9, @bg_color)
base[NORMAL] = shade (1.18, @bg_color)
}}
style "xfdesktop-windowlist" {{
bg[NORMAL] = @bg_color
fg[INSENSITIVE] = shade (0.95, @bg_color)
text[INSENSITIVE] = shade (0.95, @bg_color)
}}
style "xfdesktop-icon-view" {{
XfdesktopIconView::label-alpha = 0
XfdesktopIconView::selected-label-alpha = 60
XfdesktopIconVIew::ellipsize-icon-labels = 1
base[NORMAL] = @selected_bg_color
base[SELECTED] = @selected_bg_color
base[ACTIVE] = @selected_bg_color
fg[NORMAL] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[ACTIVE] = @selected_fg_color
engine "murrine" {{
textstyle = 5
text_shade = 0.05
}}
}}
style "xfwm-tabwin" {{
Xfwm4TabwinWidget::border-width = 0
Xfwm4TabwinWidget::icon-size = 64
bg[NORMAL] = @menu_bg_color
fg[NORMAL] = @menu_fg_color
engine "murrine" {{
focusstyle = 0
}}
}}
style "xfsm-logout" {{
bg[NORMAL] = @menu_bg_color
bg[ACTIVE] = @menu_bg_color
bg[PRELIGHT] = shade (1.1, @menu_bg_color)
bg[SELECTED] = shade (0.5, @menu_bg_color)
bg[INSENSITIVE] = shade (1.3, @menu_bg_color)
fg[NORMAL] = @menu_fg_color
fg[PRELIGHT] = @menu_fg_color
text[NORMAL] = @menu_fg_color
engine "murrine" {{
}}
}}
style "xfsm-logout-button" {{
bg[NORMAL] = shade (1.2, @menu_bg_color)
bg[PRELIGHT] = shade (1.4, @menu_bg_color)
engine "murrine" {{
}}
}}
widget "*WnckPager*" style "workspace-switcher"
widget "*Xfce*Panel*" style "murrine-panel"
class "*Xfce*Panel*" style "murrine-panel"
# Thunar Styles
style "sidepane" {{
base[NORMAL] = @bg_color
base[INSENSITIVE] = shade(0.90, @bg_color)
bg[NORMAL] = @bg_color
text[NORMAL] = @text_color
}}
widget_class "*ThunarShortcutsView*" style "sidepane"
widget_class "*ThunarTreeView*" style "sidepane"
widget_class "*ThunarLocationEntry*" style "murrine-entry"
# Gtk2 Open-File Dialog
widget_class "*GtkFileChooserWidget.GtkFileChooserDefault.GtkVBox.GtkHPaned.GtkVBox.GtkScrolledWindow.GtkTreeView*" style "sidepane"
widget_class "*GtkFileChooserWidget.GtkFileChooserDefault.GtkVBox.GtkHPaned.GtkVBox.GtkScrolledWindow.<GtkTreeView>.<GtkButton>" style "murrine-treeview-header"
# Google Chrome/Chromium Styles (requires 9.0.597 or newer)
style "chromium-toolbar-button" {{
engine "murrine" {{
roundness = 2
textstyle = 0
}}
}}
style "chrome-gtk-frame" {{
ChromeGtkFrame::frame-color = @titlebar_bg_color
ChromeGtkFrame::inactive-frame-color = @titlebar_bg_color
ChromeGtkFrame::frame-gradient-size = 0
ChromeGtkFrame::frame-gradient-color = @titlebar_bg_color
ChromeGtkFrame::incognito-frame-color = @titlebar_bg_color
ChromeGtkFrame::incognito-inactive-frame-color = @titlebar_bg_color
ChromeGtkFrame::incognito-frame-gradient-size = 0
ChromeGtkFrame::incognito-frame-gradient-color = @titlebar_bg_color
ChromeGtkFrame::scrollbar-trough-color = @bg_color
ChromeGtkFrame::scrollbar-slider-normal-color = mix (0.21, @text_color, @bg_color)
ChromeGtkFrame::scrollbar-slider-prelight-color = mix (0.31, @text_color, @bg_color)
}}
class "ChromeGtkFrame" style "chrome-gtk-frame"
widget_class "*Chrom*Button*" style "chromium-toolbar-button"
# General Styles
class "GtkWidget" style "murrine-default"
class "GtkFrame" style "murrine-wide"
class "MetaFrames" style "metacity-frame"
class "GtkWindow" style "metacity-frame"
class "GtkSeparator" style "murrine-wide"
class "GtkCalendar" style "murrine-wide"
class "GtkSpinButton" style "murrine-spinbutton"
class "GtkScale" style "murrine-scale"
class "GtkVScale" style "murrine-vscale"
class "GtkHScale" style "murrine-hscale"
class "GtkScrollbar" style "murrine-scrollbar"
class "GtkVScrollbar" style "murrine-vscrollbar"
class "GtkHScrollbar" style "murrine-hscrollbar"
class "GtkRadio*" style "murrine-radiocheck"
class "GtkCheck*" style "murrine-radiocheck"
class "GtkEntry" style "murrine-entry"
widget_class "*<GtkNotebook>" style "murrine-notebook"
widget_class "*<GtkNotebook>*<GtkEventBox>" style "murrine-notebook-bg"
widget_class "*<GtkNotebook>*<GtkDrawingArea>" style "murrine-notebook-bg"
widget_class "*<GtkNotebook>*<GtkLayout>" style "murrine-notebook-bg"
widget_class "*.GtkNotebook.*.GtkViewport" style "murrine-notebook"
widget_class "*<GtkButton>" style "murrine-button"
widget_class "*<GtkStatusbar>*" style "murrine-statusbar"
widget_class "*<GtkProgress>" style "murrine-progressbar"
widget_class "*<GtkProgressBar>" style "murrine-progressbar"
widget_class "*<GtkComboBoxEntry>*" style "murrine-comboboxentry"
widget_class "*<GtkCombo>*" style "murrine-comboboxentry"
widget_class "*<GtkMenu>*" style "murrine-menu"
widget_class "*<GtkMenuItem>*" style "murrine-menu-item"
widget_class "*<GtkSeparatorMenuItem>*" style "murrine-separator-menu-item"
widget_class "*Menu*.*Sepa*" style "murrine-separator-menu-item"
widget_class "*<GtkMenuBar>*" style "murrine-menubar"
widget_class "*<GtkMenuBar>*<GtkMenuItem>*" style "murrine-menubaritem"
widget_class "*GtkToolButton*" style "murrine-toolbutton"
widget_class "*GtkToggleToolButton*" style "murrine-toolbutton"
widget_class "*GtkMenuToolButton*" style "murrine-toolbutton"
widget_class "*GtkToolbar*Button" style "murrine-toolbutton"
widget_class "*.<GtkFrame>.<GtkLabel>" style "murrine-frame-title"
widget_class "*.<GtkTreeView>*" style "murrine-treeview"
widget_class "*.<GtkTreeView>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkCTree>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkList>.<GtkButton>" style "murrine-treeview-header"
widget_class "*.<GtkCList>.<GtkButton>" style "murrine-treeview-header"
widget "gtk-tooltip*" style "murrine-tooltips"
widget_class "*<GtkScrolledWindow>*<OsScrollbar>" style "murrine-overlay-scrollbar"
# Workarounds and Non-Standard Styling
style "text-is-fg-color-workaround" {{
text[NORMAL] = @text_color
text[PRELIGHT] = @text_color
text[SELECTED] = @selected_fg_color
text[ACTIVE] = @text_color
text[INSENSITIVE] = mix (0.5, @bg_color, @text_color)
}}
widget_class "*.<GtkComboBox>.<GtkCellView>" style "text-is-fg-color-workaround"
style "fg-is-text-color-workaround" {{
fg[NORMAL] = @text_color
fg[PRELIGHT] = @text_color
fg[ACTIVE] = @selected_fg_color
fg[SELECTED] = @selected_fg_color
fg[INSENSITIVE] = darker (@text_color)
}}
widget_class "*<GtkListItem>*" style "fg-is-text-color-workaround"
widget_class "*<GtkCList>" style "fg-is-text-color-workaround"
widget_class "*<EelEditableLabel>" style "fg-is-text-color-workaround"
style "murrine-evo-new-button-workaround" {{
engine "murrine" {{
toolbarstyle = 0
}}
}}
widget_class "EShellWindow.GtkVBox.BonoboDock.BonoboDockBand.BonoboDockItem*" style "murrine-evo-new-button-workaround"
style "inkscape-toolbar-fix" {{
engine "murrine" {{
gradient_shades = {{ 1.0, 1.0, 1.0, 1.0 }}
highlight_shade = 1.0
}}
}}
#widget "*GtkHandleBox*" style "inkscape-toolbar-fix"
#widget "*HandleBox*CommandsToolbar*" style "inkscape-toolbar-fix"
#widget "*HandleBox*SnapToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*SelectToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*NodeToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*TweakToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*ZoomToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*StarToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*RectToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*3DBoxToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*ArcToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*SpiralToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*PencilToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*PenToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*CalligraphyToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*EraserToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*LPEToolToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*DropperToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*ConnectorToolbar*" style "inkscape-toolbar-fix"
widget "*HandleBox*PaintbucketToolbar*" style "inkscape-toolbar-fix"
# Performance Fixes
style "performance-fix" {{
engine "murrine" {{
textstyle = 0
}}
}}
widget_class "*gtkmm__GtkWindow*" style "performance-fix" # Inkscape
widget_class "*GimpDisplayShell*" style "performance-fix" # Gimp
widget_class "*GimpToolbox*" style "performance-fix"
widget_class "*GimpMenuDock*" style "performance-fix"
widget "*OOoFixed*" style "performance-fix" # Openoffice/Libreoffice
widget_class "*MozContainer*" style "performance-fix" # Firefox (Not sure if this one does anything though.)
widget_class "*XfceHeading*" style "xfce-header"
widget_class "*XfceDesktop*" style "xfdesktop-windowlist"
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"
widget "xfwm4-tabwin*" style "xfwm-tabwin"
widget_class "*XfsmLogoutDialog*" style "xfsm-logout"
widget_class "*XfsmLogoutDialog*GtkButton" style "xfsm-logout-button"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 286 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

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