Compare commits

...

362 Commits

Author SHA1 Message Date
39745885c2 Enable VFR at Hyprland 2025-08-20 16:15:25 -05:00
af79a7c09c Use less stepped-on env file location for proj 2025-08-19 17:45:48 -05:00
ade6aba195 Fix socket 2025-07-09 12:43:20 -05:00
b3777d53a9 Cleaning up some vim plugins 2025-06-29 16:19:32 -05:00
3782f0b76c Disable relative line numbering 2025-05-15 11:38:02 -05:00
4f67e2b9f7 Add memory limits to ollama 2025-05-15 11:37:39 -05:00
e48092d2ae Play with hyprland bounce animations 2025-02-27 02:05:38 -06:00
ee6cf018b7 Set a non-default split ratio for dwindle 2025-02-27 01:56:17 -06:00
84bdaa7bd0 Switch to swapwindow
This more closely mimicks bspwm
2025-02-27 01:48:32 -06:00
bd3063e370 Cleanup 2025-02-27 01:48:20 -06:00
c653114e2c Implement moving into that submap 2025-02-27 01:11:27 -06:00
4efd4c3625 Implement resize submap 2025-02-27 01:05:00 -06:00
90ef8c3271 Set ft to hyprlang in hyprland dots (oops) 2025-02-13 14:24:36 -06:00
926510a96c Re-add moving windows with alt+click 2025-02-13 13:07:56 -06:00
4510be46e7 Use $mainMod when binding hyprexpo 2025-02-13 13:07:41 -06:00
2e538f2a6b Alter window rules 2025-02-09 14:22:02 -06:00
1f9c670dce Rework monitors on dsk-ryzen-1 2025-02-09 14:16:16 -06:00
b26a5435e7 Add module for staged rpm-ostree deployments 2025-02-08 23:31:38 -06:00
13015b5bcb Switch to Feishin, not Spotify 2025-02-07 21:32:23 -06:00
ce15981965 Update .bin 2025-02-07 21:23:20 -06:00
0a64734884 Add plugin conf for hyprexpo 2025-02-04 21:59:30 -06:00
80027dc5bf Replace note with a shell alias to do the note instead 2025-02-04 21:56:12 -06:00
fb488350aa Notate that alias 2025-02-04 21:50:36 -06:00
ffdfbf8220 Add hyprpm toolbox alias 2025-02-04 21:48:38 -06:00
e877892276 Different icon for plugged-in batteries 2025-02-01 03:45:24 -06:00
5445e6de4d Faster battery polling in waybar 2025-02-01 03:41:33 -06:00
f7b3c7728f Remove outdated overview section in README 2025-01-27 05:46:19 -06:00
975f17d1a0 Remove old themes 2025-01-27 05:41:08 -06:00
cd6b8ea9f0 Remove weird scratchpad keybinds 2025-01-24 01:42:04 -06:00
26168e2808 Minor polishing for foot 2025-01-22 01:37:08 -06:00
df4fedf23f Use foot instead of kitty
Yeah really not liking it tbh
2025-01-22 01:33:04 -06:00
8880fde097 Revert "Remove defunct foot config"
This reverts commit a0a38f776d.
2025-01-22 01:30:07 -06:00
770328c432 Add quick script to set the remote to gitea 2025-01-21 02:31:29 -06:00
e362d48c76 Update terraform vim module 2025-01-21 01:07:50 -06:00
d08697c431 Change behavior for opening an app behind a fullscreen one, comment 2025-01-21 01:07:05 -06:00
40bfa59169 Fix some indentation 2025-01-21 01:01:56 -06:00
8e0a3f938b Update .bin 2025-01-16 02:00:49 -06:00
3eb55227d9 Lock on sleep 2025-01-12 05:02:02 -06:00
937e18a6a6 Add brightness controls to hyprland 2025-01-12 03:07:11 -06:00
5705506f4a Launch steam in silent mode 2025-01-11 04:26:53 -06:00
Salt
f3f9d8d634 Add lemp13 config 2025-01-10 18:05:59 -05:00
Jacob Babor
b807c961e5 Update submodules 2025-01-10 16:18:59 -06:00
a130a2600d Update .bin 2025-01-10 14:46:39 -06:00
8e093d3d6b Launch Steam at startup 2025-01-06 02:18:20 -06:00
dceaaf7455 Reenable resizing with mouse
haha oops
2025-01-03 00:03:24 -06:00
b1d83cb9c0 Disable clicky binds 2025-01-01 22:26:26 -06:00
195d36e1c5 Lower time threshold for auto-trashing 2024-12-29 12:08:27 -06:00
83ec5f1ec2 Sort out SuperTurtleIdle backups 2024-12-23 12:21:23 -06:00
d08967c511 Add rule for Steam 2024-12-19 13:52:17 -06:00
Jacob Babor
445d898611 Set focus follows mouse for kitty 2024-12-18 19:53:08 -06:00
Jacob Babor
eb94273ba6 Add broadcaster 2024-12-18 19:22:14 -06:00
Jacob Babor
999e88a03d Remove firestarter from basic desktop stuff 2024-11-27 16:44:54 -06:00
Jacob Babor
9106503ffa Rip out firestarter 2024-11-27 16:39:34 -06:00
Jacob Babor
24a40d2865 Add RDP cleanup to autocategorize 2024-11-27 16:38:55 -06:00
Jacob Babor
319d7c5d49 Autostart OBS 2024-11-13 15:12:51 -06:00
c8cb8c1bcd Fix window rules for pavu on nonwork 2024-11-07 22:45:13 -06:00
Jacob Babor
f4a672b833 Fix a bunch of zoom rules 2024-11-07 22:44:36 -06:00
79034b7ffc Fix swww-daemon forking in multiuser setups 2024-11-06 21:49:47 -06:00
Jacob Babor
87eef60701 Adwaita light because I'm a sociopath 2024-11-05 20:57:14 -06:00
Jacob Babor
c661155c2e Update submodules 2024-11-05 20:51:08 -06:00
Jacob Babor
0845419583 Add Hyprland work config 2024-11-05 20:50:29 -06:00
55efdb4a21 Auto set up remote for git
I finally did the thing
2024-10-27 14:18:03 -05:00
6586a6b450 Tweak some dwindle settings 2024-10-27 13:31:20 -05:00
8cdf4ab033 Prevent multiple hyprlocks 2024-10-26 14:37:09 -05:00
4dea7b99af Darken the update indicator -- it doesn't need that much attention 2024-10-21 12:42:13 -05:00
53617395a9 Set kitty to act like a default xterm-256color
Because so many of my hosts have no clue what the fuck an xterm-kitty is
2024-10-21 12:41:48 -05:00
6c17a0171b Add custom flatpak update module to waybar 2024-10-20 19:32:30 -05:00
1cb07b84c1 Update date more frequently
Yeah, I'm okay with it being wrong for 30 seconds but not 24 hours
2024-10-19 02:31:01 -05:00
e2207863e7 Darken lock screen even more 2024-10-19 02:30:04 -05:00
3bd62f1815 Trim the fug outta kitty 2024-10-18 19:41:04 -05:00
eb4b119b9f Disable confirming closure of windows running programs in kitty 2024-10-18 17:45:36 -05:00
45b93322df Rice hyprlock 2024-10-18 17:44:07 -05:00
c534f35bce Swap to hypridle 2024-10-18 17:16:27 -05:00
4303c84073 Add dysfunctional hypr configs 2024-10-18 17:14:29 -05:00
1b20fb90e9 Remove sway stuff from hyprland 2024-10-18 17:14:20 -05:00
a0a38f776d Remove defunct foot config 2024-10-18 17:07:06 -05:00
6fdf1a9ce3 Update hyprland config 2024-10-18 17:03:45 -05:00
657afe2418 Use kitty --single-instance with some extra flags 2024-10-18 16:56:38 -05:00
1ae6991331 Disable Kitty update checks 2024-10-18 16:51:05 -05:00
f00d347d4c Use Kitty instead of Foot 2024-10-18 16:49:02 -05:00
c29981ac7a Fix spotify rules 2024-10-15 11:27:00 -05:00
e3bba0cdea Bring back spotify 2024-10-12 00:32:03 -05:00
07c370ce48 Fix not starting swww-daemon 2024-09-24 10:17:56 -05:00
f81ba8a211 Fix shit 2024-09-20 19:36:24 -05:00
767d05aae9 Quote more vars 2024-09-20 19:20:15 -05:00
2d827a24dc Add post script 2024-09-20 19:19:32 -05:00
a57acea205 Add more intelligent swww-daemon startup 2024-09-20 19:12:19 -05:00
8d8e9ceabc Maybe hopefully fix keyring stuff 2024-09-17 02:29:34 -05:00
1d22a2aba1 Work through more window rules 2024-09-17 02:17:00 -05:00
ba98f5cdf2 Add indicator for maximized workspaces 2024-09-17 01:43:43 -05:00
4ae3c91d83 Make active workspaces on other monitors a different color again 2024-09-17 01:39:54 -05:00
76bb8e1aa3 Add window name display to waybar 2024-09-17 01:39:06 -05:00
3755c324fd Add LD_LIBRARY_PATH to ollama service 2024-09-14 13:31:38 -05:00
bf0bf38370 Update autocategorize 2024-09-14 13:31:30 -05:00
304c1868a1 Add debug log conf for hyperland 2024-09-04 00:52:44 -05:00
c6825ff197 Hide wofi scrollbar too 2024-08-30 01:31:47 -05:00
49d50e3507 Disable actions for wofi 2024-08-30 01:23:16 -05:00
2dc3516653 Put 11th workspace on laptop 2024-08-30 01:20:05 -05:00
97e1a4d4c3 More visibility 2024-08-29 22:34:58 -05:00
681ec430b9 The fabled 11th workspace 2024-08-29 22:34:54 -05:00
c4cd0b945f Tweak colors a bit 2024-08-29 20:26:37 -05:00
5fc2e1d18a Add laptop config 2024-08-29 18:02:59 -05:00
4d4c002ff4 Add contrib readme 2024-08-29 17:59:52 -05:00
65b2aadd23 Theme Dunst a bit more 2024-08-29 17:49:06 -05:00
c349feea51 Compact muted indicator 2024-08-29 17:49:01 -05:00
696a5146de Transparent vim bg finally 2024-08-29 17:39:11 -05:00
31936cc008 Remove drop-shadow from hyprland 2024-08-29 14:14:46 -05:00
292c6da3ae ...Fix waybar? 2024-08-29 14:12:42 -05:00
8f90389691 Theme the shit out of wofi 2024-08-29 14:06:04 -05:00
38b9a1a487 Basic wofi stuff 2024-08-29 01:30:11 -05:00
f7f3c1fa98 I am going way deep down the rice rabbit hole 2024-08-29 01:24:29 -05:00
b4f9f5d81f Make mute a lot easier to see 2024-08-29 01:22:04 -05:00
f3e4edc09b Add swww-daemon to exec stuff 2024-08-29 01:15:27 -05:00
35737cd238 RICE RICE RICE RICE RICE RICE 2024-08-29 00:26:32 -05:00
93d8f5be12 Fix gaps 2024-08-29 00:07:39 -05:00
353d3897e6 Fix up waybar audio 2024-08-28 23:51:00 -05:00
8c7fc1a387 Add keybinds for locking, fix wofi doubling up 2024-08-28 23:45:19 -05:00
a1a5a4e2f5 Add polkitd 2024-08-28 23:42:20 -05:00
24759eceee Add swayidle 2024-08-28 23:42:16 -05:00
0e9e4e98a6 Move wlsunset into daemons file 2024-08-28 02:49:08 -05:00
4dccafbead Disable blur (we don't really need it and it drains bat) 2024-08-28 02:46:54 -05:00
61296c3cd4 Maybe fix some window rules, change workspace swipe behavior 2024-08-28 02:45:56 -05:00
bb7c661fc2 Don't scale xwayland apps 2024-08-28 02:38:00 -05:00
5a41e9701d Holy shit we're adding so much hyprland 2024-08-28 02:34:50 -05:00
09b3c2b43f We workin on more hyprland 2024-08-27 19:12:27 -05:00
df88af735d Working on hyprland stuff 2024-08-27 18:32:33 -05:00
9783051217 Duplicate sericea configs into hyprland 2024-08-27 13:39:37 -05:00
11beb9b182 Also disable adaptive sync????? 2024-08-24 19:30:59 -05:00
4ed2003a96 Reenable noscanout to see if it fixes a sway bug I'm hitting 2024-08-24 18:25:51 -05:00
7f33f6ca70 Make exif-strip a lot nicer 2024-08-22 00:35:04 -05:00
7fbc41cbd1 Add alias for realtime process showing 2024-08-20 09:52:34 -05:00
ed1af0ea75 Revert "Update desktop wallpape"
This reverts commit 825aeae1d4.
2024-08-19 20:50:33 -05:00
825aeae1d4 Update desktop wallpape 2024-08-16 23:10:18 -05:00
0f6775753c Disable noscanout for sway 2024-08-12 23:10:49 -05:00
ea7304a653 Add Docker-Podman alias 2024-08-06 21:57:33 -05:00
91f4feae1c Have ollama listen on all ifs 2024-08-01 16:26:52 -05:00
aa7e9f75da Update laptop wp 2024-08-01 15:51:20 -05:00
556448c8f7 Update dsk wp 2024-08-01 15:51:06 -05:00
0f1a5cc8b4 Add EDF 6 rule 2024-07-28 22:25:31 -05:00
43eed9be2e Modify colors on waybar to make visible but unfocused workspaces clearer 2024-07-27 23:31:22 -05:00
8307ea7ed7 Polish the fuck out of those bars 2024-07-27 23:15:29 -05:00
202a370558 Fix incorrect settings for temperature module 2024-07-23 03:49:27 -05:00
9a8739057c Add nuclear to app rules 2024-07-21 02:16:35 -05:00
b14526d70b Move temperature 2024-07-20 13:36:27 -05:00
55ed9a1bb6 Clean up the bar a bit more 2024-07-20 13:35:21 -05:00
272cb0af2c Simplify some waybar modules 2024-07-20 13:32:21 -05:00
51ecf7e199 Add temperature monitor 2024-07-20 13:23:27 -05:00
43ca837317 Make idle inhibitor just white when active
It's not necessarily a failure, after all
2024-07-15 18:45:14 -05:00
6118d3295c Reorder notifiers in waybar 2024-07-10 21:47:19 -05:00
2c12518d07 Update ALE 2024-07-07 11:02:43 -05:00
b5c1b2ed07 Fix up some window rules 2024-07-05 22:43:00 -05:00
1a7814c84e Add sdwebui service 2024-06-30 03:49:14 -05:00
c8dd400543 Add sillytavern service 2024-06-30 00:35:28 -05:00
ef02f6e3b8 Add services for llama stuff 2024-06-28 11:30:25 -05:00
71dd9ad849 Add 11th workspace to waybar 2024-06-25 22:18:35 -05:00
7426c4211a Add 11th workspace 2024-06-25 22:18:07 -05:00
f2745f024d Disable steam rules 2024-06-09 11:14:58 -05:00
c296f4136a Add network disconnection thing, move network to left of bottom bar 2024-06-07 11:43:05 -05:00
0ebebaad1a Update window rules more 2024-06-07 00:28:19 -05:00
a9568985fb Update window rules 2024-06-07 00:24:38 -05:00
58f2f6ad45 Update submodules 2024-06-07 00:04:50 -05:00
efd5937768 Show swap percentage in memory module as subtext 2024-06-01 16:14:30 -05:00
964dfaab31 Revert "Add swap space to bar"
This reverts commit dbb6352564.
2024-06-01 16:07:08 -05:00
dbb6352564 Add swap space to bar 2024-06-01 15:48:45 -05:00
215491a175 Fix battery color being completely wrong 2024-05-18 15:46:53 -05:00
b988e899b1 Give toolbox PS1s the name of their container
TY Fedora Magazine! https://fedoramagazine.org/alternative-way-of-saving-toolboxes-for-later-use/
2024-05-17 10:47:05 -05:00
8a9d9b4a8e Add vesktop to rules 2024-05-15 10:26:15 -05:00
a8bf27be01 Disable direct scanout 2024-05-10 21:39:48 -05:00
c75e1a6326 update refresh rate 2024-05-10 21:27:55 -05:00
316be04712 Add flatpak dump timer 2024-05-04 20:35:06 -05:00
d74f91cefa Disable StrictHostKeyChecking 2024-05-03 21:59:40 -05:00
91d2601344 Reenable some sway keybinds 2024-05-03 22:06:58 -05:00
0250e8a666 Add waybar module to check for failed backups 2024-05-03 18:45:52 -05:00
07ace6160d Modify theme meta 2024-05-03 13:38:36 -05:00
4e50d19f40 Add vesktop theme 2024-05-03 13:36:37 -05:00
c43b42ab18 Unify colors more 2024-04-30 10:42:41 -05:00
3468abeb5d Move battery to left side of bar 2024-04-30 10:42:29 -05:00
3d9d9f9fe8 Make a regular-ass battery white instead of green 2024-04-30 10:41:14 -05:00
2c37f60dd0 Fix battery colors 2024-04-30 10:38:01 -05:00
6bbec1f422 Update submodules 2024-04-27 18:08:55 -05:00
9b13f99bb5 Unify waybar a bit 2024-04-27 12:21:48 -05:00
9b040f5337 Add CPU and Memory to waybar 2024-04-26 23:26:48 -05:00
143f48996a Move clock to corner 2024-04-26 14:00:30 -05:00
87f3b0b1db Fix waybar lengths 2024-04-26 12:00:56 -05:00
51e4e345e2 Double bar power 2024-04-26 11:41:19 -05:00
941b07bc3e Don't stow swap files gdi 2024-04-26 10:46:50 -05:00
13a662b060 Turn foot font into something that hurts my eyes less 2024-04-23 21:25:51 -05:00
6ee3b04bcf Revamp pulseaudio module 2024-04-23 21:16:16 -05:00
df58feb9c9 Stylize hover effect on waybar workspaces 2024-04-23 20:50:06 -05:00
44c90d4e63 Rerice the things 2024-04-23 20:14:46 -05:00
e096dfe038 Consolidate monitors on dsk-ryzen-1 2024-04-21 18:38:59 -05:00
1822f7cd83 Simplify the shit out of swayidle 2024-04-18 15:04:55 -05:00
9f807854fa Black lockscreen instead of wp one 2024-04-18 15:02:39 -05:00
bec07d6fea Fully modularize sway configs 2024-04-17 01:35:18 -05:00
6494402d57 Modularize sway configs 2024-04-17 01:27:21 -05:00
7f756565a0 Add wlsunset 2024-04-17 01:12:31 -05:00
c5a8fa7f50 Remove deprecated resource 2024-04-16 10:30:13 -05:00
1b9d8264d5 Add screenshot hotkey, rework pavu hotkey 2024-04-13 16:41:17 -05:00
2ec7591a65 Add template machine file for swaywm 2024-04-13 16:31:24 -05:00
1c88a04ee3 More configuration 2024-04-13 16:31:16 -05:00
94189aa4b1 Add a bunch of new stuff 2024-04-13 13:38:46 -05:00
f249325f06 Disable dwt 2024-04-13 13:13:03 -05:00
2c0c7682d4 Update volume icons 2024-03-23 14:43:01 -05:00
7215925ea8 Update ALE 2024-03-23 14:35:59 -05:00
b426ccc2c8 Update submodules 2024-03-06 22:30:07 -06:00
7c73bef79a Update sway config for mouse 2024-03-06 22:30:03 -06:00
57445fae63 Export generic terminfo for foot 2024-02-22 19:13:12 -06:00
494fade73a Make network indicator less obtrusive and more readable 2024-02-17 00:35:23 -06:00
350249a6f6 Update waybar with traffic monitoring 2024-02-17 00:21:52 -06:00
9ae5d2ca36 Butt workspaces up against the edge too 2024-02-15 03:51:25 -06:00
4850134136 Move clickables to the end of the bar 2024-02-15 03:50:31 -06:00
188486ff0c Manipulate waybar a bit more to reach parity with my old polybar setup 2024-02-15 03:48:54 -06:00
737dd52eaf Revise window rules to fit new updated flatpaks 2024-02-15 03:29:07 -06:00
d2a965a972 Tighten dunst config, add progress bar support 2024-02-15 03:20:51 -06:00
9e1482604f Rename sway desktop to represent how fedora-specific it is 2024-02-15 03:04:59 -06:00
583fb23d61 Add titlebar border thickness matching that of windows 2024-02-15 03:01:20 -06:00
f21cca3252 Remove old i3-settree from sway cfg 2024-02-15 02:56:25 -06:00
88997abede Reorg the shit out of sway colors 2024-02-15 02:53:59 -06:00
cc70578be2 Remove extraneous restart cmd in sway cfg 2024-02-15 02:41:44 -06:00
44ae7b5736 Minor cleanup in sway cfg 2024-02-15 02:37:44 -06:00
6d86feaa76 Add machine-specific configs to sway 2024-02-15 02:35:09 -06:00
fe8e4cff89 Minimalize mpris widget 2024-02-15 02:24:02 -06:00
8746f3f737 Move idle_inhibitor a space to the right
This way the variable-width widget is leftmost
2024-02-15 02:20:04 -06:00
ba197b44e5 Move inhibitor to the right 2024-02-15 02:19:28 -06:00
5c4a03900d Add mpris (media player) widget to waybar 2024-02-15 02:17:45 -06:00
5ec82e75a2 Add idle inhibitor to waybar 2024-02-15 01:54:38 -06:00
fd8a8dc5d9 Fix mode hint not using gruvbox 2024-02-15 01:45:55 -06:00
36ae2c53d4 Add persistent workspaces to waybar, style urgent ones 2024-02-15 01:44:51 -06:00
796e1a717b Get rid of comments in waybar 2024-02-15 01:36:10 -06:00
6b6239c318 Dunst minor reorg 2024-02-15 01:28:17 -06:00
9a5bb99d61 Add modeline 2024-02-15 01:26:52 -06:00
5864c9d46f Clean the hell outta the dunst config 2024-02-15 01:24:30 -06:00
5ff46e0232 Make rofi a bit more dense 2024-02-15 01:09:13 -06:00
f280c76297 Do the same for element 2024-02-14 23:20:49 -06:00
d42fc38e87 Inhibit discord idle while visible 2024-02-14 23:20:32 -06:00
0eb776fd3a Override autolocker 2024-02-14 23:17:22 -06:00
60e2c6f0b4 Update configuration for input devices 2024-02-13 21:27:39 -06:00
c895e17283 Update waybar a bit 2024-02-13 20:02:16 -06:00
aced90f23b Add swaylock config 2024-02-12 19:22:46 -06:00
530b93e802 Add dunst configs 2024-02-12 19:18:31 -06:00
5c8368cab4 Add element window rule 2024-02-12 19:01:18 -06:00
5caa7ee34e Add window rules to sway 2024-02-12 19:00:10 -06:00
129bb880c3 Disable some portions that fedora enables automagically 2024-02-12 18:50:11 -06:00
57e518188f More sway stuff 2024-02-12 18:47:42 -06:00
f73916a221 Add waybar to swaywm config 2024-02-12 18:37:09 -06:00
f3262a344f Update submodules 2024-02-12 18:34:35 -06:00
211c5e8bce Update sway configs 2024-02-12 18:34:26 -06:00
0bc302721c Flatten rofi 2024-02-12 17:58:05 -06:00
330fc4f818 Update autocategorize 2024-01-18 20:06:58 -06:00
6e68d085fe Add exif stripping service 2023-11-16 10:43:18 -06:00
c4c00a8701 Add autocategorize service 2023-06-15 15:31:12 -05:00
0c5d0a80b5 Update ale 2023-06-15 14:56:00 -05:00
4bf2a9bffc Update all the things 2023-06-04 20:00:49 -05:00
b35223e41f Set default branch to master 2022-12-02 11:04:18 -06:00
969fb15988 Minor reconfig to actually bootstrap homebrew jfc 2022-11-28 16:04:28 -06:00
5a5eb83345 Syntax fix 2022-11-28 15:59:36 -06:00
330274bbc0 Minor compat patch for MacOS systems 2022-11-28 15:59:04 -06:00
51bf4161b2 Add some brew compat (possibly?) 2022-11-28 15:57:31 -06:00
bb63236125 Update submodules 2022-11-25 13:14:14 -06:00
13255c5e74 Add prefix to prompt when we're in a toolbox
Hooray more functionality!
Hooray kinoite/silverblue!
2022-08-28 01:31:45 -05:00
fd5b3bf7ea Update submodules 2022-08-27 20:01:43 -05:00
5a1a08c11e Add default.target.wants to gitignore
WE DONT CARE
2022-08-20 16:30:34 -05:00
98c4e79442 Rework .bash template
The config file functionality was something I never used, and for good reason
Best get rid of it
2022-06-06 23:54:22 -05:00
cbd575b7b1 Trim the fat from .profile
Still have so much to do though
2022-06-06 23:50:11 -05:00
9211b18f23 Update a bunch of Vim plugins 2022-06-06 23:45:11 -05:00
710056840e Remove mineclone2 submodule, replace with a suggestion README 2022-06-06 23:44:35 -05:00
a381f1fb6d Make all Vim templates use my new email 2022-04-27 17:19:42 -05:00
e13a5a4b88 Just use /etc/hostname all the time, please 2022-04-15 22:10:00 -05:00
606a31c422 Rewrite rofi config to support the version in 22.04 2022-04-15 22:07:10 -05:00
12b0ca4d52 Update submodules 2022-04-13 18:53:48 -05:00
ae733d53b3 Modify our hostname get in the Bash PS1 to work on systems without hostname installed
Might just switch to that permanently tbh; it's nicer and quicker
2022-04-13 18:53:44 -05:00
149c957d37 Reconfigure git.user
It's about time I stopped associating everything with that throwaway email address
2022-03-19 12:18:37 -05:00
2863ec45b4 Ignore .netrwhist for vim 2022-03-19 12:16:46 -05:00
7cdb0d708f Rebase 2022-01-29 08:41:18 -06:00
c552d62cad Center date? Center date. 2022-01-27 08:03:24 -06:00
315d3510fb Minor polish to Sway
But I still hate libinput and this touchpad, ugh
2022-01-26 15:58:19 -06:00
b0b6047f06 Slight cosmetic adjustments to swaywm 2022-01-26 15:46:30 -06:00
8b1ae5722d Update README 2022-01-26 15:42:35 -06:00
318923dcd5 Add a script to make some template directories for me 2022-01-26 15:41:37 -06:00
b01f43751a Make Polybar a bit more energy-efficient 2022-01-24 11:12:04 -06:00
561ec9d4eb Adapt Dunst to this new theme 2022-01-23 14:05:49 -06:00
2414251e1f Modify my rice for better compatibility on my new high-res monitor
like fug, my eyes are hurty
2022-01-23 13:18:45 -06:00
fbc2f92c9d Add some Vim configuration for Jenkinsfiles 2022-01-22 15:19:20 -06:00
92b2a7dd3f Update sxhkd to use the KDE screen locker direct
Required change for 21.10
2022-01-21 21:43:01 -06:00
de417b51e8 Remove numlock warning indicator 2022-01-21 21:42:27 -06:00
6b73f3b1dd Add compatibility for Framework laptop 2022-01-21 17:22:14 -06:00
8a5ed3e32f Update plugins 2022-01-21 17:06:08 -06:00
261edaa1c2 Add vim-terraform 2021-08-01 19:37:23 -05:00
c396e838ca Add Terraform autocomplete 2021-08-01 19:34:05 -05:00
ccbfdf3ec0 Update submodules 2021-07-19 14:49:22 -05:00
ca29690fd3 Make aliases for BSD congruent with GNU 2021-07-11 14:12:54 -05:00
baf172aa78 Fix bug with .profile and assigning BSD ls flags 2021-07-11 14:07:11 -05:00
6775a187c4 Add a rule for modloader64 2021-07-01 22:59:58 -05:00
2847694671 Update submodules 2021-06-30 23:34:23 -05:00
1d13fb73ed Remove dsk-ryzen from the .xinitrc
Its monitor changes will be done in a firestarterrc
2021-06-30 23:33:50 -05:00
41f60a8070 Update submodules 2021-06-21 13:40:49 -05:00
1aad56b213 Update submodules 2021-05-21 12:00:52 -05:00
f4e0a53eff Update .bin 2021-05-08 17:01:29 -05:00
aab8931831 Update submodules 2021-05-04 12:16:04 -05:00
6d3f874d0f Polish Polybar up, re-adding the spacing at the edges and adding a new keylock indicator 2021-05-04 12:15:19 -05:00
a10b25428d Put a pulse widget on secondary bars 2021-05-04 01:06:18 -05:00
49df19fd11 Update mineclone2 2021-04-28 12:41:55 -05:00
a9fd4a6853 Update submodules 2021-04-20 11:22:26 -05:00
6caafb0ef3 Update plugins 2021-04-19 14:25:27 -05:00
3d639da78b Update plugins 2021-04-12 17:52:08 -05:00
220da453ed Add indicators for bspwm 2021-04-12 17:51:37 -05:00
280791dc43 Update plugins 2021-04-09 14:52:02 -05:00
cbb3361de7 Have polybar render out the exact percentage of the battery remaining 2021-03-29 15:16:08 -05:00
cd99422f49 Update submodules 2021-03-29 15:14:26 -05:00
583fbcd694 Update submodules 2021-03-17 10:24:29 -05:00
79a235fd4c Add kubectl alias 2021-03-17 10:24:25 -05:00
eb58893b48 Fix not having a function in bash template 2021-03-06 05:37:02 -06:00
3594b1c2a2 Update submodules 2021-03-06 05:11:31 -06:00
1d6dab2107 Add automatic kubectl completion 2021-03-01 14:53:19 -06:00
10b8ddb1f2 Update .bin 2021-02-28 01:25:06 -06:00
5f9dd857be Update .bin 2021-02-28 01:23:45 -06:00
8eb42d45a4 Update MineClone2 2021-02-28 01:14:36 -06:00
9420d1d578 Update scripts 2021-02-28 01:12:44 -06:00
6dc61b9758 Update submodules 2021-02-26 11:51:30 -06:00
906ba74538 Edit keybind to kill compositor 2021-02-16 07:16:17 -06:00
e9e6e5e3f0 GOD FUCKING DAMMIT 2021-02-16 06:58:48 -06:00
2a13cbb92f Rename BSPWM rule section to obey desktops 2021-02-16 06:20:42 -06:00
0733f165ee Update submodules, rewrite small portion of xinitrc for desktop 2021-02-16 06:07:06 -06:00
df195ce40e Make yaml less ass 2021-02-15 12:08:38 -06:00
6c68f369ce Make some tweaks to profile and functions 2021-02-15 10:24:57 -06:00
16448e5d8d Update ALE, MineClone2 2021-02-11 10:53:55 -06:00
06d82f1f61 TODO 2021-02-10 19:38:37 -06:00
eb383a3365 Add sway and waybar configs 2021-02-05 09:09:36 -06:00
bc68f48e82 Remove deploy-all
Now that's just asking for trouble
2021-02-04 22:31:23 -06:00
38947e2468 Rework directory structure to more accurately reflect what the "work" package did 2021-02-04 22:29:15 -06:00
1d15c38369 Move .xinitrc to the rice itself 2021-02-04 22:26:29 -06:00
efd62518d3 Move themes to their own package 2021-02-04 22:17:10 -06:00
3c43b8bcfd Remove lesser-used aliases 2021-02-03 01:22:50 -06:00
814166d27f Bluify our Plasma colorscheme 2021-02-02 13:47:15 -06:00
ec3bc04782 Fix echoing instead of logging when done stowing package 2021-01-28 23:47:54 -06:00
b9ff1ce0a6 Update ALE, MineClone 2 2021-01-28 23:46:31 -06:00
03293faf89 Fix bugs in bootleg stow, such as not copying symlinks and empty directory removal not working 2021-01-28 23:45:17 -06:00
2c4341e5e8 Update README 2021-01-27 02:21:04 -06:00
2fb59d407e Add a bootleg stow utility 2021-01-27 02:20:08 -06:00
779b8c6c9d Tweak CRT config 2021-01-23 21:04:35 -06:00
679364ee20 Add cool retro term config 2021-01-23 20:59:38 -06:00
1ed328d882 Update README clone instructions 2021-01-19 03:30:47 -06:00
916382b5dc Add work dots 2021-01-19 03:17:45 -06:00
149caa6cc9 Update systemd unit for dotfile fetching 2021-01-19 02:40:09 -06:00
93bd41c157 Move Firestarter into different config buckets as well 2021-01-19 02:36:49 -06:00
b22eb9b2eb Move bin into base 2021-01-19 02:32:01 -06:00
9df7fbc0ba Move Vim configuration into base 2021-01-19 02:29:22 -06:00
006aa36b1c Remove "dot" alias
Kinda don't need that anymore
2021-01-19 02:19:47 -06:00
f371c43557 Add a deploy-all script 2021-01-19 02:19:05 -06:00
967ffe1310 Add a script for updating submodules, make README nicer 2021-01-19 02:16:17 -06:00
deb6ad1c87 Move Mac configs over
HA
2021-01-19 02:00:56 -06:00
9554034956 Revert "Add backup configuration"
This reverts commit 0b54cabfe4.
2021-01-19 01:56:33 -06:00
0b54cabfe4 Add backup configuration
See git.desu.ltd:salt/ansible/roles/backup for more details
2021-01-19 01:53:20 -06:00
e72d053d6f Add Minetest stuff to desktop-common 2021-01-19 01:51:10 -06:00
d8f6b1065a Port over quake configs 2021-01-19 01:49:54 -06:00
1795eb9967 Add base 2021-01-19 01:49:20 -06:00
fe5fb11174 Add gtkrc-2.0 to desktop-gruvbox 2021-01-19 01:48:36 -06:00
9d1ab82e02 Goodbye, wpgen 2021-01-19 01:47:07 -06:00
11dd2217b9 Rename desktop-base to desktop-common 2021-01-19 01:46:51 -06:00
d71e6c720b Port over more of my basic bitch gruvbox desktop 2021-01-19 01:46:02 -06:00
5ebcae085b Add basic desktop components 2021-01-19 01:44:12 -06:00
fdac8d01a9 Port over themes 2021-01-19 01:43:43 -06:00
198 changed files with 13341 additions and 211 deletions

2
.gitignore vendored
View File

@@ -1 +1,3 @@
*.swp
.netrwhist
*/.config/systemd/user/default.target.wants/

38
.gitmodules vendored
View File

@@ -1,42 +1,48 @@
[submodule "vim/.vim/pathogen"]
path = vim/.vim/pathogen
path = base/.vim/pathogen
url = https://github.com/tpope/vim-pathogen
[submodule "vim/.vim/bundle/vim-closetag"]
path = vim/.vim/bundle/vim-closetag
path = base/.vim/bundle/vim-closetag
url = https://github.com/alvan/vim-closetag.git
[submodule "vim/.vim/bundle/gruvbox"]
path = vim/.vim/bundle/gruvbox
path = base/.vim/bundle/gruvbox
url = https://github.com/morhetz/gruvbox
[submodule "vim/.vim/bundle/SimpylFold"]
path = vim/.vim/bundle/SimpylFold
path = base/.vim/bundle/SimpylFold
url = https://github.com/tmhedberg/SimpylFold.git
[submodule "vim/.vim/bundle/vim-template"]
path = vim/.vim/bundle/vim-template
path = base/.vim/bundle/vim-template
url = https://github.com/aperezdc/vim-template.git
[submodule "vim/.vim/bundle/incsearch.vim"]
path = vim/.vim/bundle/incsearch.vim
path = base/.vim/bundle/incsearch.vim
url = https://github.com/haya14busa/incsearch.vim.git
[submodule "vim/.vim/bundle/lightline.vim"]
path = vim/.vim/bundle/lightline.vim
path = base/.vim/bundle/lightline.vim
url = https://github.com/itchyny/lightline.vim
[submodule "vim/.vim/bundle/ale"]
path = vim/.vim/bundle/ale
path = base/.vim/bundle/ale
url = https://github.com/w0rp/ale
[submodule "vim/.vim/bundle/lightline-gruvbox.vim"]
path = vim/.vim/bundle/lightline-gruvbox.vim
path = base/.vim/bundle/lightline-gruvbox.vim
url = https://github.com/shinchu/lightline-gruvbox.vim
[submodule "vim/.vim/bundle/vim-css-color"]
path = vim/.vim/bundle/vim-css-color
path = base/.vim/bundle/vim-css-color
url = https://github.com/ap/vim-css-color
[submodule "vim/.vim/bundle/vim-javascript"]
path = vim/.vim/bundle/vim-javascript
path = base/.vim/bundle/vim-javascript
url = https://github.com/pangloss/vim-javascript
[submodule "vim/.vim/bundle/vim-ansible-yaml"]
path = vim/.vim/bundle/vim-ansible-yaml
path = base/.vim/bundle/vim-ansible-yaml
url = https://github.com/chase/vim-ansible-yaml
[submodule "firestarter/.firestarter"]
path = firestarter/.firestarter
url = git@git.desu.ltd:salt/firestarter
[submodule "bin/.bin"]
path = bin/.bin
path = base/.bin
url = git@git.desu.ltd:salt/bin
[submodule "base/.vim/bundle/vim-terraform"]
path = base/.vim/bundle/vim-terraform
url = https://github.com/hashivim/vim-terraform
[submodule "base/.vim/bundle/vim-groovy"]
path = base/.vim/bundle/vim-groovy
url = https://github.com/thecodesmith/vim-groovy
[submodule "base/.vim/bundle/FastFold"]
path = base/.vim/bundle/FastFold
url = https://github.com/Konfekt/FastFold

View File

@@ -8,16 +8,11 @@ Clone the repository and stow in configs that you want, like so:
```bash
cd
git clone git@git.desu.ltd:salt/dotfiles .dotfiles
git clone git@git.desu.ltd:salt/dotfiles --recurse-submodules .dotfiles
cd .dotfiles
git submodule update --recursive --remote
stow vim # Or whatever config set you want
stow base # Or whatever config set you want
```
I would highly recommend using this repository only as a reference and building your own dotfile solution from scratch.
However, I would *also* highly recommend using this stow-based approach instead of putting a bare repo in your home directory. Been there, done that. It sucks, especially if you're the type to diverge configs between machines or just want a subset installed.
## Overview
TODO: Overview of config sets

14
base/.bashrc Executable file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
#
# ~/.bashrc
#
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
# Source .profile
if [ -r ~/.profile ]; then
# shellcheck disable=1090
source ~/.profile
fi

1
base/.bin Submodule

Submodule base/.bin added at 45a99b283d

252
base/.config/dircolors Normal file
View File

@@ -0,0 +1,252 @@
# Copyright (c) 2017-present Arctic Ice Studio <development@arcticicestudio.com>
# Copyright (c) 2017-present Sven Greb <code@svengreb.de>
# Project: Nord dircolors
# Repository: https://github.com/arcticicestudio/nord-dircolors
# License: MIT
COLOR tty
TERM ansi
TERM *color*
TERM con[0-9]*x[0-9]*
TERM cons25
TERM console
TERM cygwin
TERM dtterm
TERM dvtm
TERM dvtm-256color
TERM Eterm
TERM eterm-color
TERM fbterm
TERM gnome
TERM gnome-256color
TERM hurd
TERM jfbterm
TERM konsole
TERM konsole-256color
TERM kterm
TERM linux
TERM linux-c
TERM mlterm
TERM putty
TERM putty-256color
TERM rxvt*
TERM rxvt-unicode
TERM rxvt-256color
TERM rxvt-unicode256
TERM screen*
TERM screen-256color
TERM st
TERM st-256color
TERM terminator
TERM tmux*
TERM tmux-256color
TERM vt100
TERM xterm*
TERM xterm-color
TERM xterm-88color
TERM xterm-256color
#+-----------------+
#+ Global Defaults +
#+-----------------+
NORMAL 00
RESET 0
FILE 00
DIR 01;34
LINK 36
MULTIHARDLINK 04;36
FIFO 04;01;36
SOCK 04;33
DOOR 04;01;36
BLK 01;33
CHR 33
ORPHAN 31
MISSING 01;37;41
EXEC 01;36
SETUID 01;04;37
SETGID 01;04;37
CAPABILITY 01;37
STICKY_OTHER_WRITABLE 01;37;44
OTHER_WRITABLE 01;04;34
STICKY 04;37;44
#+-------------------+
#+ Extension Pattern +
#+-------------------+
#+--- Archives ---+
.7z 01;32
.ace 01;32
.alz 01;32
.arc 01;32
.arj 01;32
.bz 01;32
.bz2 01;32
.cab 01;32
.cpio 01;32
.deb 01;32
.dz 01;32
.ear 01;32
.gz 01;32
.jar 01;32
.lha 01;32
.lrz 01;32
.lz 01;32
.lz4 01;32
.lzh 01;32
.lzma 01;32
.lzo 01;32
.rar 01;32
.rpm 01;32
.rz 01;32
.sar 01;32
.t7z 01;32
.tar 01;32
.taz 01;32
.tbz 01;32
.tbz2 01;32
.tgz 01;32
.tlz 01;32
.txz 01;32
.tz 01;32
.tzo 01;32
.tzst 01;32
.war 01;32
.xz 01;32
.z 01;32
.Z 01;32
.zip 01;32
.zoo 01;32
.zst 01;32
#+--- Audio ---+
.aac 32
.au 32
.flac 32
.m4a 32
.mid 32
.midi 32
.mka 32
.mp3 32
.mpa 32
.mpeg 32
.mpg 32
.ogg 32
.opus 32
.ra 32
.wav 32
#+--- Customs ---+
.3des 01;35
.aes 01;35
.gpg 01;35
.pgp 01;35
#+--- Documents ---+
.doc 32
.docx 32
.dot 32
.odg 32
.odp 32
.ods 32
.odt 32
.otg 32
.otp 32
.ots 32
.ott 32
.pdf 32
.ppt 32
.pptx 32
.xls 32
.xlsx 32
#+--- Executables ---+
.app 01;36
.bat 01;36
.btm 01;36
.cmd 01;36
.com 01;36
.exe 01;36
.reg 01;36
#+--- Ignores ---+
*~ 02;37
.bak 02;37
.BAK 02;37
.log 02;37
.log 02;37
.old 02;37
.OLD 02;37
.orig 02;37
.ORIG 02;37
.swo 02;37
.swp 02;37
#+--- Images ---+
.bmp 32
.cgm 32
.dl 32
.dvi 32
.emf 32
.eps 32
.gif 32
.jpeg 32
.jpg 32
.JPG 32
.mng 32
.pbm 32
.pcx 32
.pgm 32
.png 32
.PNG 32
.ppm 32
.pps 32
.ppsx 32
.ps 32
.svg 32
.svgz 32
.tga 32
.tif 32
.tiff 32
.xbm 32
.xcf 32
.xpm 32
.xwd 32
.xwd 32
.yuv 32
#+--- Video ---+
.anx 32
.asf 32
.avi 32
.axv 32
.flc 32
.fli 32
.flv 32
.gl 32
.m2v 32
.m4v 32
.mkv 32
.mov 32
.MOV 32
.mp4 32
.mpeg 32
.mpg 32
.nuv 32
.ogm 32
.ogv 32
.ogx 32
.qt 32
.rm 32
.rmvb 32
.swf 32
.vob 32
.webm 32
.wmv 32

26
base/.config/htop/htoprc Normal file
View File

@@ -0,0 +1,26 @@
# Beware! This file is rewritten by htop when settings are changed in the interface.
# The parser is also very primitive, and not human-friendly.
fields=0 5 48 17 18 38 39 2 46 47 49 1
sort_key=46
sort_direction=1
hide_threads=0
hide_kernel_threads=1
hide_userland_threads=1
shadow_other_users=1
show_thread_names=1
show_program_path=1
highlight_base_name=0
highlight_megabytes=1
highlight_threads=1
tree_view=1
header_margin=1
detailed_cpu_time=0
cpu_count_from_zero=0
update_process_names=0
account_guest_in_cpu_meter=0
color_scheme=0
delay=15
left_meters=AllCPUs2 Memory Swap
left_meter_modes=1 1 1
right_meters=Tasks LoadAverage Uptime
right_meter_modes=2 2 2

View File

@@ -0,0 +1,89 @@
#! /bin/sh
set -e
# Pull in user-dirs.dirs if it exists
userdirs="${XDG_CONFIG_DIR:-$HOME/.config}"/user-dirs.dirs
[ -f "$userdirs" ] && . "$userdirs"
# Obtain download directory from there, otherwise use default
downloaddir="${XDG_DOWNLOAD_DIR:-$HOME/Downloads}"
documentsdir="${XDG_DOCUMENTS_DIR:-$HOME/Documents}"
picturesdir="${XDG_PICTURES_DIR:-$HOME/Pictures}"
videosdir="${XDG_VIDEOS_DIR:-$HOME/Videos}"
# If we have Nextcloud installed, this will be our backups dir
backupsdir="${HOME}/Nextcloud/Backups"
# Take loose crap out of the home folder
echo "Sorting away videos from homedir..."
find "$HOME" \
-maxdepth 1 \
-type f \
\( \
-iname "*.mov" -or \
-iname "*.webm" -or \
-iname "*.mkv" -or \
-iname "*.mp4" \
\) \
-print \
-exec mv {} "$videosdir" \;
echo "Sorting away pictures from homedir..."
find "$HOME" \
-maxdepth 1 \
-type f \
\( \
-iname "*.jpg" -or \
-iname "*.jpeg" -or \
-iname "*.gif" -or \
-iname "*.png" -or \
-iname "*.webp" \
\) \
-print \
-exec mv {} "$picturesdir" \;
# Sort out downloads
[ -e "$downloaddir" ] && {
# Sort out epubs
if [ -d ~/Books ]; then
echo "Sorting out books..."
find "$downloaddir" \
-type f \
\( \
-iname "*.epub" -or \
-iname "*.mobi" \
\) \
-print \
-exec mv {} ~/Books \;
fi
# Remove RDP stuffs
echo "Removing RDP zone identifiers..."
find "$downloaddir" \
-type f -iname "*:Zone.Identifier" \
-print -delete
# Remove anything that's wicked old
echo "Removing ancient downloads..."
find "$downloaddir" \
-mtime +60 \
-print -delete
# Remove anything kinda old but really big
echo "Removing large downloads..."
find "$downloaddir" \
-mtime +30 -size +10M \
-print -delete
# Remove zips, but at a lower tolerance
echo "Removing old zips..."
find "$downloaddir" \
-mtime +30 -type f -iname "*.zip" \
-print -delete
# Sort out Super Turtle Idle automatic backups
[ -d "$backupsdir" ] && {
echo "Sorting out turtle backups..."
mkdir -p "$backupsdir/SuperTurtleIdle"
for file in "$downloaddir"/SuperSaveData-*.json; do
if [ -e "$file" ]; then
lastmod="$(stat -c %y -- "$file")"
echo "Moving backup from $lastmod"
mv "$file" "$backupsdir/SuperTurtleIdle/SuperSaveData-$lastmod.json"
fi
done
}
}

View File

@@ -0,0 +1,9 @@
# vim:ft=systemd:
[Unit]
Description=Autocategorize service
[Service]
ExecStart=%h/.config/systemd/user/autocategorize
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,11 @@
# vim:ft=systemd:
[Unit]
Description=Autocategorize timer
[Timer]
Persistent=true
OnBootSec=15min
OnCalendar=*-*-* 22:00:00
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,9 @@
# vim:ft=systemd:
[Unit]
Description=Dotfile fetch service
[Service]
ExecStart=git --git-dir=%h/.dotfiles/.git fetch
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,11 @@
# vim:ft=systemd:
[Unit]
Description=Dot fetch timer
[Timer]
Persistent=true
OnBootSec=15min
OnCalendar=*-*-* 22:00:00
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,9 @@
# vim:ft=systemd:
[Unit]
Description=Image metadata stripping service
[Service]
ExecStart=toolbox run -c general nice -n 20 ionice -c 3 exiftool -recurse -overwrite_original -all= %h/Pictures/Photos
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,10 @@
# vim:ft=systemd:
[Unit]
Description=Image metadata stripping timer
[Timer]
Persistent=true
OnCalendar=*:0/15
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,9 @@
# vim:ft=systemd:
[Unit]
Description=Flatpak manifest backup service
[Service]
ExecStart=bash -c 'flatpak list --columns=application --app > $HOME/.backup/flatpak-latest.txt'
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,10 @@
# vim:ft=systemd:
[Unit]
Description=Flatpak manifest backup timer
[Timer]
Persistent=true
OnCalendar=*:0/15
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,15 @@
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="LD_LIBRARY_PATH=/var/home/salt/Projects/ollama/rocm/lib/ollama/"
ExecStart=/home/salt/Projects/ollama/ollama serve
Restart=always
RestartSec=3
MemoryHigh=3G
MemoryMax=4G
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,11 @@
[Unit]
Description=OpenWebUI Service
After=network-online.target
[Service]
ExecStart=/home/salt/Projects/ollama/run-webui.sh
Restart=always
RestartSec=3
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,9 @@
# vim:ft=systemd:
[Unit]
Description=Project fetch service
[Service]
ExecStart=find %h/Projects -type d -iname .git -execdir git fetch \;
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,11 @@
# vim:ft=systemd:
[Unit]
Description=Project fetch timer
[Timer]
Persistent=true
OnBootSec=15min
OnCalendar=*-*-* 23:00:00
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,12 @@
[Unit]
Description=StableDiffusion Web UI Service
After=network-online.target
[Service]
WorkingDirectory=/home/salt/Projects/ollama/sdwebui/
ExecStart=/home/salt/Projects/ollama/sdwebui/webui-docker.sh
Restart=always
RestartSec=3
[Install]
WantedBy=default.target

View File

@@ -0,0 +1,11 @@
[Unit]
Description=SillyTavern Service
After=network-online.target
[Service]
ExecStart=/home/salt/Projects/ollama/run-sillytavern.sh
Restart=always
RestartSec=3
[Install]
WantedBy=default.target

64
base/.functions Normal file
View File

@@ -0,0 +1,64 @@
#! /bin/bash
#
# .functions
# Functions for interactive shells
#
proj() {
# Ensure we have an argument
if [ -z ${1+x} ]; then
echo "proj: requires argument"
return 1
fi
# POSIX mandates this external call to sed
projname="$(echo "$1" | sed -re 's/[^ a-zA-Z0-9.-]//g')"
projdir="$HOME/Projects/$projname"
# Ensure we have a ~/Projects directory
mkdir -p "$HOME/Projects" > /dev/null 2>&1
# cd into the project or make it if necessary
if [ -d "$projdir" ]; then
# It exists
cd "$projdir" || return 50
# Run code if we have it
# The fun part is this environment file can access some vars about the proj
local envfile="$projdir/.project-env"
if [ -r "$envfile" ]; then
. "$envfile"
echo "Sourced environment file for project"
# Also mark an envvar to ensure we can detect this condition
export PROJECT="$projname"
fi
else
# It does not exist
echo "Creating new project \"$projname\""
mkdir -p "$projdir"
cd "$projdir" || return 51
if command -v git > /dev/null 2>&1; then
# Initialize git
echo "Initializing git with .gitignore"
git init > /dev/null 2>&1
echo '*.swp' > .gitignore
git add .gitignore > /dev/null 2>&1
git commit -am "Create gitignore" > /dev/null 2>&1
git status
fi
fi
}
# Autocompletion for bash
# A note on the shellcheck disable: that's fine, because this is also a test
# If it fails, we don't even define a completion function
# shellcheck disable=2039
complete -F _proj proj > /dev/null 2>&1 && \
_proj() {
[ "${#COMP_WORDS[@]}" != "2" ] && return 0
for dir in "$HOME"/Projects/*; do
reply="$(basename "$dir")"
reply="${reply//[^ \-a-zA-Z0-9.]/}"
# shellcheck disable=2179
COMPREPLY+=" $reply"
done
unset reply
# shellcheck disable=2178
COMPREPLY=($(compgen -W "$COMPREPLY" "${COMP_WORDS[COMP_CWORD]}"))
return 0
}

17
base/.inputrc Normal file
View File

@@ -0,0 +1,17 @@
## COMPLETION
set colored-stats on
set completion-ignore-case on
# Only need a single tab press to show results
set show-all-if-ambiguous on
# You ever do that thing where you put your cursorright in the middle of a word,
# like you're at the "e" in "Makefile", and hit tab, and bash oh-so-helpfully
# inserts the latter half of the word right in the middle of it -- so you've
# got "Makefilefile" sitting in your terminal?
# Yeah fuck that
set skip-completed-text on
## KEYBINDINGS
# History searching
"\e[A": history-search-backward
"\e[B": history-search-forward

360
base/.profile Executable file
View File

@@ -0,0 +1,360 @@
#!/bin/sh
#
# My shell profile
#
# Copyright (c) 2017-2022 Jacob Babor
# Licensed under the terms of the MIT license
#
## SHELLCHECK
# Yeah whatever I don't care that you can't find these
# shellcheck disable=1091
# shellcheck disable=1090
# I'm well aware of when functions are defined vs used
# Those choices are deliberate
# shellcheck disable=2139
# shellcheck disable=2016
# Some variables will not be used here, but in the shell
# shellcheck disable=2034
# Quit being pedantic
# shellcheck disable=1117
# Environment variables
_baseshell="$(basename -- "$0")"
# Patch PATH
for dir in \
"$HOME/.bin" \
"$HOME/.local/bin" \
"/usr/local/opt/coreutils/libexec/gnubin" \
"/usr/local/opt/gnu-sed/libexec/gnubin" \
"/usr/local/opt/grep/libexec/gnubin" \
"/usr/local/opt/util-linux/bin" \
"/usr/local/opt/util-linux/sbin"
do
if [ -d "$dir" ]; then
PATH="$dir:$PATH"
fi
done
# Grab bash_completion, if it exists
[ -f "/etc/profile.d/bash_completion.sh" ] && . "/etc/profile.d/bash_completion.sh"
# Source ~/.functions, if it exists
[ -r "$HOME/.functions" ] \
&& [ "$_baseshell" != "sh" ] \
&& [ "$_baseshell" != "dash" ] \
&& . "$HOME/.functions"
# Define a require function
has() {
[ -z "$1" ] && return 1
command -v "$1" > /dev/null 2>&1
}
# Source in homebrew configuration, if we have it installed
brewfix=/usr/local
# This patch is needed on Apple silicon
if [ -d /opt/homebrew ]; then
brewfix="/opt/homebrew"
fi
if [ -f "$brewfix"/bin/brew ]; then
eval "$("$brewfix"/bin/brew shellenv)"
# Add coreutils to path, if we can
if [ -d "$brewfix"/opt/coreutils/libexec/gnubin ]; then
export PATH="$brewfix/opt/coreutils/libexec/gnubin:$PATH"
fi
fi
unset brew
# If we have toolbox, assume we're on Wayblue and set up an alias
if has toolbox; then
#toolbox create hyprpm
#toolbox run -c hyprpm sudo dnf -y install hyprland hyprland-devel
alias mktoolbox-hyprpm='toolbox create hyprpm && toolbox run -c hyprpm sudo dnf -y install hyprland hyprland-devel'
alias hyprpm='toolbox run -c hyprpm env HYPRLAND_INSTANCE_SIGNATURE="$HYPRLAND_INSTANCE_SIGNATURE" hyprpm'
fi
# Grab pip completion, if it exists
if has pip; then
case "$_baseshell" in
*bash)
if ! [ -f "$HOME/.pip-completion-bash" ]; then
pip completion --bash > "$HOME/.pip-completion-bash"
echo ".profile: Created pip completion for bash"
fi
. "$HOME/.pip-completion-bash"
;;
zsh)
if ! [ -f "$HOME/.pip-completion-zsh" ]; then
pip completion --zsh > "$HOME/.pip-completion-zsh"
echo ".profile: Created pip completion for zsh"
fi
. "$HOME/.pip-completion-zsh"
;;
*)
;;
esac
fi
# Grab dircolors, if it exists
if has dircolors; then
dircolorsfile="$HOME/.config/dircolors"
if [ -r "$dircolorsfile" ]; then
eval "$(dircolors "$dircolorsfile")"
else
eval "$(dircolors -b)"
fi
fi
# Set up our text editor
for editor in vim vi nano; do
if has "$editor"; then
export EDITOR="$editor"
break
fi
done
# Now for a shitton of aliases
if has podman and ! has docker; then
alias docker="podman"
fi
if has git; then
# Thanks Bash-it!
alias g='git'
alias ga='git add'
alias gall='git add -A'
alias gap='git add -p'
alias gb='git branch'
alias gbD='git branch -D'
alias gba='git branch -a'
alias gbd='git branch -d'
alias gbm='git branch -m'
alias gbt='git branch --track'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gcam="git commit -v -am"
alias gcb='git checkout -b'
alias gci='git commit --interactive'
alias gcl='git clone'
alias gclean='git clean -fd'
alias gcm='git commit -v -m'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcom='git checkout master'
alias gcount='git shortlog -sn'
alias gcp='git cherry-pick'
alias gcpd='git checkout master; git pull; git branch -D'
alias gcpx='git cherry-pick -x'
alias gcsam="git commit -S -am"
alias gct='git checkout --track'
alias gd='git diff'
alias gdel='git branch -D'
alias gds='git diff --staged'
alias gdv='git diff -w "$@" | vim -R -'
alias get='git'
alias gexport='git archive --format zip --output'
alias gf='git fetch --all --prune'
alias gft='git fetch --all --prune --tags'
alias gftv='git fetch --all --prune --tags --verbose'
alias gfv='git fetch --all --prune --verbose'
alias ggs="gg --stat"
alias ggui="git gui"
alias gh='cd "$(git rev-parse --show-toplevel)"'
alias gl='git pull'
alias gll='git log --graph --pretty=oneline --abbrev-commit'
alias glum='git pull upstream master'
alias gm="git merge"
alias gmu='git fetch origin -v; git fetch upstream -v; git merge upstream/master'
alias gmv='git mv'
alias gp='git push'
alias gpatch="git format-patch -1"
alias gpo='git push origin'
alias gpom='git push origin master'
alias gpp='git pull && git push'
alias gpr='git pull --rebase'
alias gpristine='git reset --hard && git clean -dfx'
alias gpu='git push --set-upstream'
alias gpuo='git push --set-upstream origin'
alias gpuoc='git push --set-upstream origin $(git symbolic-ref --short HEAD)'
alias gr='git remote'
alias gra='git remote add'
alias grm='git rm'
alias grv='git remote -v'
alias gs='git status'
alias gsl="git shortlog -sn"
alias gss='git status -s'
alias gst="git stash"
alias gstb="git stash branch"
alias gstd="git stash drop"
alias gstl="git stash list"
alias gstp="git stash pop"
alias gsu='git submodule update --init --recursive'
alias gt="git tag"
alias gta="git tag -a"
alias gtd="git tag -d"
alias gtl="git tag -l"
alias gtls='git tag -l | sort -V'
alias gup='git fetch && git rebase'
alias gus='git reset HEAD'
alias gwc="git whatchanged"
# Add uncommitted and unstaged changes to the last commit
alias gcaa="git commit -a --amend -C HEAD"
# From http://blogs.atlassian.com/2014/10/advanced-git-aliases/
# Show commits since last pull
alias gnew="git log HEAD@{1}..HEAD@{0}"
# Show untracked files
alias gu='git ls-files . --exclude-standard --others'
fi
if has sed && has find; then
replace() {
if [ $# -ne 2 ]; then
echo "replace: Requires two arguments"
return 1
fi
find . -type f -exec sed -i "s/$1/$2/g" {} \;
}
fi
if has sudo; then
case $_baseshell in
*bash|*zsh)
export SUDO_PROMPT=$'[\e[34msudo\e[0m as %U]: Password for %p: '
;;
*)
export SUDO_PROMPT='[sudo as %U]: Password for %p: '
esac
fi
if has tree; then
treeargs='-qF --dirsfirst'
alias tree="tree $treeargs"
alias t="tree $treeargs -L 2"
alias tl="tree $treeargs -pughL 2"
alias tp="tree $treeargs -pL 2"
alias ts="tree $treeargs -hL 2"
unset treeargs
fi
# Aliases for common utilities
if [ "$(uname)" = "Linux" ] || has brew; then
# Assume we have GNU coreutils
lsarguments='-Fh --color=auto --group-directories-first'
alias l="ls -l --file-type $lsarguments"
alias la="ls -A --file-type $lsarguments"
alias ls="ls $lsarguments"
alias ll="ls -Al --file-type $lsarguments"
unset lsarguments
else
# Else only assume POSIX/BSD
lsarguments='-F'
alias l="ls -l $lsarguments"
alias la="ls -A $lsarguments"
alias ls="ls $lsarguments"
alias ll="ls -Ahl $lsarguments"
fi
# Oneoffs and weird oneliners
if [ "$(uname)" = "Linux" ]; then
# Shows realtime and low-nice processes
alias rtps="LIBPROC_HIDE_KERNEL=1 ps -eo pid,class,rtprio,ni,stat,comm --sort=+pcpu | awk '\$4!=0.0 {print}' | awk 'NR>1'"
fi
# Set up a default PS1 for bash
_ps1bash() {
exitcode="$?"
r="\[\e[0m\]"
bg_red="\[\e[41m\]"
bg_yellow="\[\e[43m\]"
bg_blue="\[\e[44m\]"
fg_black="\[\e[30m\]"
fg_red="\[\e[31m\]"
fg_green="\[\e[32m\]"
fg_yellow="\[\e[33m\]"
fg_blue="\[\e[34m\]"
fg_magenta="\[\e[35m\]"
fg_grey="\[\e[37m\]"
fg_bold="\[\e[1m\]"
# Add hostname prefix in SSH sessions
unset _prefix
# Get the system hostname
if [ -f /etc/hostname ]; then
_hostname="$(</etc/hostname)"
else
_hostname="$(hostname)"
fi
# Alert if in an SSH session
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
_prefix="${fg_bold}${fg_red}${_hostname}${r}${fg_red}:${r}${_prefix}"
elif [ -n "$TOOLBOX_PATH" ]; then
_prefix="${fg_bold}${fg_magenta}$(. /run/.containerenv && echo "$name")${r}${fg_magenta}:${r}${_prefix}"
elif [ "$USER" != "salt" ]; then
_prefix="${fg_bold}${fg_yellow}$USER${r}${fg_yellow}:${r}${_prefix}"
fi
# If we're in a PROJECT, post that envvar
if [ -n "$PROJECT" ]; then
_prefix="${_prefix}${fg_bold}${fg_blue}$PROJECT${r}${fg_blue}:${r}"
fi
# Color PWD
_prefix="${_prefix}${fg_blue}"
# Show the tilde instead of $HOME
_cpwd='\w'
# Show read-only status in certain directories
if [ "$UID" = 0 ]; then
# Root gets the usual "#" prompt
_prompt="${fg_red}#${r}"
elif ! [ -d "$PWD" ]; then
# Something very bad has happened to our PWD, probably got deleted
_prompt="${bg_red}${fg_black}!${r}"
elif ! [ -r "$PWD" ]; then
# Guess we lost privileges
_prompt="${fg_red}"'$'"${r}"
elif ! [ -x "$PWD" ]; then
# Missing execution perms
if [ -w "$PWD" ]; then
# Fixable
_prompt="${bg_blue}${fg_black}"'$'"${r}"
else
# Unfixable
_prompt="${bg_yellow}${fg_black}"'$'"${r}"
fi
elif ! [ -w "$PWD" ]; then
# Can't write is really common but also good to know
_prompt="${fg_magenta}"'~'"${r}"
else
# Otherwise we should be fine
_prompt="${fg_green}"'$'"${r}"
fi
# Alert us if the last command failed
unset _fail
if ! [ "$exitcode" = "0" ]; then
_fail="${fg_bold}${fg_red}?"
fi
# shellcheck disable=2059
PS1="[${_prefix}${_cpwd}${r}]${_fail}${r}${_prompt}${r} "
}
# And export our PS1
case "$_baseshell" in
zsh)
# Don't do this on ZSH
# I have a custom theme for that
;;
*bash)
export PS1=""
export PROMPT_COMMAND=_ps1bash
;;
*)
export PS1='[\e[31m\w\e[0m]\e[32m\$\e[0m '
;;
esac
# Clean up
unset -v _baseshell
unset -f has
# Source in a site-specific profile
localprofile="$HOME/.local/profile"
if [ -f "$localprofile" ]; then
. "$localprofile"
fi

1
base/.vim/bundle/ale Submodule

Submodule base/.vim/bundle/ale added at 6c337ad19c

1
base/.vim/pathogen Submodule

Submodule base/.vim/pathogen added at ac4dd9494f

View File

@@ -13,7 +13,6 @@ endif
set autoread " Automatically read when a file is changed outside of Vim
set clipboard=unnamedplus " Use XA_PRIMARY clipboard by default
set encoding=utf-8
set foldmethod=syntax
set hidden " Allow buffer switching without saving
set incsearch " Search while you type
set laststatus=2 " Always show statusbar
@@ -21,16 +20,14 @@ set list
set listchars=tab:>·,trail
set modeline
set modelines=5
set nofoldenable " Fuck autofolding
set number relativenumber " Relative line numbering
set number
set t_Co=256
set viminfo='20,<1000,s1000 " Increase buffer size
" Folding
set foldmethod=syntax
"nnoremap <space> za
set nofoldenable " Fuck autofolding
" Templates
let g:email = 'rehashedsalt@cock.li'
let g:user = 'Vintage Salt'
let g:license = 'MIT'
let g:templates_directory = [ '~/.vim/templates' ]
" Lightline
set noshowmode
let g:lightline = {
@@ -51,7 +48,10 @@ let g:lightline = {
\ },
\}
let g:lightline.colorscheme = 'gruvbox'
hi Normal guibg=NONE ctermbg=NONE
" Jenkinsfile
au BufNewFile,BufRead Jenkinsfile setf groovy
" Json
au BufNewFile,BufRead *.json
\ set tabstop=2 |
@@ -78,4 +78,7 @@ au BufNewFile,BufRead *.html,*.php
" Treat PHP like HTML
au BufNewFile,BufRead *.php
\ set filetype=html
au FileType yaml
\ set tabstop=2 |
\ set softtabstop=2 |
\ set shiftwidth=2

Submodule bin/.bin deleted from 8bec6ce196

253
bootleg-stow Executable file
View File

@@ -0,0 +1,253 @@
#! /bin/bash
#
# bootleg-stow
# Copyright (C) 2021 Vintage Salt <rehashedsalt@cock.li>
#
# Distributed under terms of the MIT license.
#
set -e
# Read-only set-once variables
declare -r _name="$(basename -- "$0")"
declare -i _opthelp
declare -i _optverbose
# Modes
declare -i _optstow=1
declare -i _optunstow
# Working variables
declare -a _args
declare _return
declare _files
declare _directories
# Helper functions
log() {
# Print a line to the terminal if _optverbose is greater than $2
# $2 defaults to 0
# loglevel 0: Daily-use messages
# loglevel 1: Detailed but not quite debugging
# loglevel 2: Definitely debugging
[ -z "$1" ] && return 1
if (( _optverbose >= ${2:-0} )); then
printf "%s\\n" "$1"
fi
}
warn() {
# Print a yellow line to the terminal, respecting _optverbose
[ -z "$1" ] && return 1
if (( _optverbose >= ${2:-0} )); then
if [ -t 1 ]; then
printf "\\e[33m%s\\e[0m\\n" "$1"
else
printf "WARN: %s\\n" "$1"
fi
fi
}
error() {
# Print a red line to the terminal, exit if $2 is specified
[ -z "$1" ] && return 1
if [ -t 2 ]; then
printf "\\e[31m%s\\e[0m\\n" "$1" 1>&2
else
printf "ERROR: %s\\n" "$1" 1>&2
fi
[ -z "$2" ] && return
exit "${2:-1}"
}
has() {
# Parse out all arguments and try to find them in path
# If an argument cannot be found, set _return and fail
for prog in "$@"; do
if ! command -v "$prog" > /dev/null 2>&1; then
_return="$prog"
return 1
fi
done
return 0
}
checkconflict() {
# Take a directory as argument 1 and stow its contents in ..
[ -z "$1" ] && return 1
if ! [ -d "$1" ]; then
error "Could not find directory: $1" 2
fi
if ! [ -r "$1" ]; then
error "Could not read directory: $1" 2
fi
# Get our list of files
local files="$(find "$1" ! -name "*.swp" -type f -o -type l)"
local directories="$(find "$1" -type d)"
local -a conflict
# Iterate over them
for file in $files; do
# Get the basename of the file
filename="${file#"$1"/}"
if [ -f ../"$filename" ]; then
if [ -h ../"$filename" ]; then
continue
else
conflict+=("$filename")
fi
fi
done
if [ -n "${conflict[*]}" ]; then
warn "The following non-symlinks would be touched by this operation:"
for file in "${conflict[@]}"; do
echo "$file"
done
error "Please resolve these conflicts manually." 3
fi
_files="$files"
_directories="$directories"
}
stow() {
# Stow all of _files and _directories in $1 as a package name
# Note that you should checkconflict first
[ -z "$1" ] && return 1
stowdir="$(basename -- "$PWD")"
log "Stowing package: $stowdir" 1
pushd .. > /dev/null 2>&1
for dir in $_directories; do
dirname="${dir#"$1"/}"
if [ "$dir" == "$1" ]; then
log "Skipping package directory: $dir" 2
continue
fi
if ! [ -d "$dirname" ]; then
log "Creating directory: $dirname" 2
mkdir -p "$dirname"
fi
done
for file in $_files; do
filename="${file#"$1"/}"
if has realpath dirname; then
path="$(realpath --relative-to="$(dirname "$filename")" "$PWD/$stowdir/$1/$filename")"
else
path="$PWD/$stowdir/$1/$filename"
fi
if [ -h "$filename" ]; then
rm "$filename"
fi
if [ -h "$PWD/$stowdir/$1/$filename" ]; then
log "Copying symlink: $filename" 2
cp -d "$PWD/$stowdir/$1/$filename" "$filename"
else
log "Linking file: $filename to $path" 2
ln -s "$path" "$filename"
fi
done
log "Done stowing package: $1" 1
popd > /dev/null 2>&1
}
unstow() {
# Unstow all of _files and _directories
# Takes a packagename as $1
[ -z "$1" ] && return 1
pushd .. > /dev/null 2>&1
for file in $_files; do
filename="${file#"$1"/}"
if [ -h "$filename" ]; then
rm "$filename"
elif ! [ -e "$filename" ]; then
warn "File does not exist, skipping: $filename" 1
else
warn "File is not a symlink, skipping: $filename"
fi
done
_directories="$(echo "$_directories" | tac)"
log "Removing empty directories" 2
for dir in $_directories; do
dirname="${dir#"$1"/}"
# We silently ignore errors here so that rmdiring a directory with stuff in
# it doesn't break our loop.
rmdir -p "$dirname" > /dev/null 2>&1 || continue
done
popd > /dev/null 2>&1
}
# Core program functions
printhelp() {
cat << EOF
Usage: $_name [OPTION]... PACKAGE...
Bootleg stow for the poor sods who can't get it.
-h Print this help text
-R Unstow a directory.
-S Stow a directory. Default operation.
-v Print more status messages. Stacks
Copyright (c) 2021 rehashedsalt@cock.li
Licensed under the MIT license
EOF
}
# Main
main() {
# Parse out arguments
while [ -n "$1" ]; do
# Parse out flags
while getopts ":hRSv" opt; do
case $opt in
h)
_opthelp=1
;;
R)
_optunstow=1
;;
S)
_optstow=1
;;
v)
_optverbose+=1
;;
:)
error "Option requires argument: -$OPTARG" 2
;;
*)
error "Invalid option: -$OPTARG" 2
;;
esac
done
# Store arguments
shift $((OPTIND - 1))
if [ -n "$1" ]; then
_args+=("$1")
shift
fi
unset OPTIND
done
# Early hook for help
[ -n "$_opthelp" ] && printhelp && exit 0
# Validate critical options
# TODO: That
# Validate core program dependencies
log "Validating dependencies" 2
if ! has basename find tac; then
error "Failed to find program: $_return" 1
fi
# Do the do
if [ -n "$_optunstow" ]; then
if [ -n "${_args[*]}" ]; then
for package in "${_args[@]}"; do
checkconflict "$package"
unstow "$package"
done
else
error "No package specified" 1
fi
elif [ -n "$_optstow" ]; then
if [ -n "${_args[*]}" ]; then
for package in "${_args[@]}"; do
checkconflict "$package"
stow "$package"
done
else
error "No package specified" 1
fi
fi
exit 0
}
main "$@"

View File

@@ -0,0 +1,25 @@
{
"backgroundColor": "#282828",
"fontColor": "#ebdbb2",
"flickering": 0.1047,
"horizontalSync": 0.0833,
"staticNoise": 0.0956,
"chromaColor": 1,
"saturationColor": 1,
"screenCurvature": 0.2026,
"glowingLine": 0.117,
"burnIn": 0.0528,
"bloom": 0.4962,
"rasterization": 0,
"jitter": 0.1997,
"rbgShift": 0,
"brightness": 0.2981,
"contrast": 1,
"ambientLight": 0.1047,
"windowOpacity": 0.897,
"fontName": "TERMINUS_SCALED",
"fontWidth": 1,
"margin": 0.2954,
"name": "Modern",
"version": 2
}

View File

@@ -0,0 +1,55 @@
#
# Salt's MPD configuration
# gitlab.com/rehashedsalt/home
#
# DIRECTORIES
#music_directory "~/Music"
playlist_directory "~/Music/Playlists"
db_file "~/.local/share/mpd/database"
log_file "~/.local/share/mpd/log"
# Disabled by default
pid_file "~/.local/share/mpd/pid"
state_file "~/.local/share/mpd/state"
sticker_file "~/.local/share/mpd/sticker.sql"
# INPUT CONFIG
# Why the hell are these even still here?
input {
plugin "tidal"
enabled "no"
}
input {
plugin "qobuz"
enabled "no"
}
# DECODER CONFIG
decoder {
plugin "opus"
enabled "yes"
}
# OUTPUT CONFIG
audio_output {
type "pulse"
name "Local Pulse"
## server "remote_server" # optional
## sink "remote_server_sink" # optional
## media_role "media_role" #optional
}
# GENERAL CONFIG
log_level "default"
restore_paused "yes"
save_absolute_paths_in_playlists "yes"
# DATABASE CONFIG
auto_update "yes"
#auto_update_depth "3"
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links outside of the configured music_directory.
#follow_outside_symlinks "yes"
# If this setting is set to "yes", MPD will discover audio files by following
# symbolic links inside of the configured music_directory.
#follow_inside_symlinks "yes"

View File

@@ -0,0 +1 @@
volume=100

View File

@@ -0,0 +1,13 @@
#
# ptgdp.conf
# Config file for Play the Goddamned Playlist
#
# The media player backend to use
# Supported: mpd, audacious
# Default: mpd
backend=mpd
# Arguments to pass to youtube-dl during downloading
# Default: --geo-bypass
ytdl_args=--geo-bypass

View File

@@ -0,0 +1,10 @@
[redshift]
temp-day=5300
temp-night=3500
gamma=1
fade=0
location-provider=manual
[manual]
lat=38.6
lon=-90.2

View File

@@ -0,0 +1,24 @@
{
"animate_icon": true,
"autokill_daemon": 0,
"autostart_daemon": 1,
"daemon_priority": 0,
"file_browser": "explore",
"folder_as_path": true,
"force_dark_theme": false,
"icon_theme": "syncthing",
"icons_in_menu": true,
"infobox_style": "font_weight=\"bold\" font_size=\"large\"",
"language": "None",
"last_updatecheck": "1969-12-31T18:00:01",
"max_cpus": 0,
"minimize_on_start": true,
"notification_for_error": true,
"notification_for_folder": true,
"notification_for_update": false,
"st_autoupdate": false,
"syncthing_arguments": "--no-browser",
"syncthing_binary": "/usr/bin/syncthing",
"use_old_header": true,
"window_position": null
}

View File

@@ -0,0 +1,15 @@
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_VIDEOS_DIR="$HOME/Videos"

View File

@@ -0,0 +1 @@
en_US

View File

@@ -0,0 +1,47 @@
# vim:ft=dosini
# https://zim-wiki.org/manual/Help/Config_Files.html
[TextView]
font = Roboto 12
indent = 30
linespacing = 8
# Basic text formatting
[Tag emphasis]
style = italic
[Tag link]
foreground = #83a598
[Tag mark]
background = yellow
[Tag strong]
weight = PANGO_WEIGHT_BOLD
# Advanced text formatting
[Tag code]
family = monospace
[Tag pre]
# This style is used for multi-line verbatim blocks
family = monospace
wrap-mode = none
indent = 20
[Tag strike]
foreground = #7f8c8d
strikethrough = true
[Tag tag]
foreground = #ce5c00
# Headings
[Tag h1]
scale = 1.75
weight = PANGO_WEIGHT_BOLD
[Tag h2]
scale = 1.52
weight = PANGO_WEIGHT_BOLD
[Tag h3]
scale = 1.32
style = italic
weight = PANGO_WEIGHT_BOLD
[Tag h4]
scale = 1.15
weight = PANGO_WEIGHT_BOLD
[Tag h5]
weight = PANGO_WEIGHT_BOLD

View File

@@ -0,0 +1,9 @@
COMMON
-thresh -16383 16383 -16383 16383
# Momodora with my iBuffalo SNES pad
# Which is bomb, btw. Would recommend
START snes
-X
-buttons a b x y l r s t
-axis Left Right Up Down

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,105 @@
[ColorEffects:Disabled]
Color=56,56,56
ColorAmount=0
ColorEffect=0
ContrastAmount=0.65000000000000002
ContrastEffect=1
IntensityAmount=0.10000000000000001
IntensityEffect=2
[ColorEffects:Inactive]
ChangeSelectionColor=true
Color=112,111,110
ColorAmount=0.025000000000000001
ColorEffect=2
ContrastAmount=0.10000000000000001
ContrastEffect=2
Enable=true
IntensityAmount=0
IntensityEffect=0
[Colors:Button]
BackgroundAlternate=60,56,54
BackgroundNormal=40,40,40
DecorationFocus=131,165,152
DecorationHover=131,165,152
ForegroundActive=142,192,124
ForegroundInactive=55,115,117
ForegroundLink=184,187,38
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=235,219,178
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:Selection]
BackgroundAlternate=142,192,124
BackgroundNormal=131,165,152
DecorationFocus=131,165,152
DecorationHover=131,165,152
ForegroundActive=252,252,252
ForegroundInactive=235,219,178
ForegroundLink=253,188,75
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=235,219,178
ForegroundPositive=39,174,96
ForegroundVisited=189,195,199
[Colors:Tooltip]
BackgroundAlternate=60,56,54
BackgroundNormal=40,40,40
DecorationFocus=131,165,152
DecorationHover=131,165,152
ForegroundActive=184,187,38
ForegroundInactive=55,115,117
ForegroundLink=142,192,124
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=235,219,178
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:View]
BackgroundAlternate=60,56,54
BackgroundNormal=40,40,40
DecorationFocus=131,165,152
DecorationHover=131,165,152
ForegroundActive=184,187,38
ForegroundInactive=55,115,117
ForegroundLink=142,192,124
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=235,219,178
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:Window]
BackgroundAlternate=60,56,54
BackgroundNormal=40,40,40
DecorationFocus=131,165,152
DecorationHover=131,165,152
ForegroundActive=184,187,38
ForegroundInactive=55,115,117
ForegroundLink=142,192,124
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=235,219,178
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[General]
ColorScheme=GruvboxColors
Name=GruvboxColors
shadeSortColumn=true
[KDE]
contrast=4
[WM]
activeBackground=39,39,39
activeBlend=235,219,178
activeForeground=235,219,178
inactiveBackground=40,40,40
inactiveBlend=60,56,54
inactiveForeground=204,190,155

View File

@@ -0,0 +1,119 @@
[ColorEffects:Disabled]
Color=56,56,56
ColorAmount=0
ColorEffect=0
ContrastAmount=0.65000000000000002
ContrastEffect=1
IntensityAmount=0.10000000000000001
IntensityEffect=2
[ColorEffects:Inactive]
ChangeSelectionColor=true
Color=112,111,110
ColorAmount=0.025000000000000001
ColorEffect=2
ContrastAmount=0.10000000000000001
ContrastEffect=2
Enable=true
IntensityAmount=0
IntensityEffect=0
[Colors:Button]
BackgroundAlternate=60,56,54
BackgroundNormal=251,241,199
DecorationFocus=104,157,106
DecorationHover=131,165,152
ForegroundActive=142,192,124
ForegroundInactive=55,115,117
ForegroundLink=184,187,38
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=60,56,54
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:Complementary]
BackgroundAlternate=189,174,147
BackgroundNormal=213,196,161
DecorationFocus=204,36,29
DecorationHover=204,36,29
ForegroundActive=131,165,152
ForegroundInactive=235,219,178
ForegroundLink=69,133,136
ForegroundNegative=251,73,52
ForegroundNeutral=250,189,47
ForegroundNormal=38,38,38
ForegroundPositive=204,36,29
ForegroundVisited=211,134,155
[Colors:Selection]
BackgroundAlternate=142,192,124
BackgroundNormal=104,157,106
DecorationFocus=104,157,106
DecorationHover=131,165,152
ForegroundActive=252,252,252
ForegroundInactive=235,219,178
ForegroundLink=253,188,75
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=235,219,178
ForegroundPositive=39,174,96
ForegroundVisited=189,195,199
[Colors:Tooltip]
BackgroundAlternate=60,56,54
BackgroundNormal=40,40,40
DecorationFocus=104,157,106
DecorationHover=131,165,152
ForegroundActive=184,187,38
ForegroundInactive=55,115,117
ForegroundLink=142,192,124
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=235,219,178
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:View]
BackgroundAlternate=242,229,188
BackgroundNormal=251,241,199
DecorationFocus=104,157,106
DecorationHover=131,165,152
ForegroundActive=184,187,38
ForegroundInactive=55,115,117
ForegroundLink=142,192,124
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=60,56,54
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[Colors:Window]
BackgroundAlternate=60,56,54
BackgroundNormal=251,241,199
DecorationFocus=104,157,106
DecorationHover=131,165,152
ForegroundActive=184,187,38
ForegroundInactive=55,115,117
ForegroundLink=142,192,124
ForegroundNegative=218,68,83
ForegroundNeutral=246,116,0
ForegroundNormal=60,56,54
ForegroundPositive=39,174,96
ForegroundVisited=127,140,141
[General]
ColorScheme=GruvboxColors
Name=GruvboxLight
shadeSortColumn=true
[KDE]
contrast=4
[WM]
activeBackground=39,39,39
activeBlend=235,219,178
activeForeground=235,219,178
inactiveBackground=40,40,40
inactiveBlend=60,56,54
inactiveForeground=204,190,155

View File

@@ -0,0 +1,95 @@
[Background]
Color=40,40,40
[BackgroundFaint]
Color=40,40,40
[BackgroundIntense]
Color=40,40,40
[Color0]
Color=40,40,40
[Color0Faint]
Color=40,40,40
[Color0Intense]
Color=146,131,116
[Color1]
Color=204,36,29
[Color1Faint]
Color=204,36,29
[Color1Intense]
Color=251,73,52
[Color2]
Color=152,151,26
[Color2Faint]
Color=152,151,26
[Color2Intense]
Color=184,187,38
[Color3]
Color=215,153,33
[Color3Faint]
Color=215,153,33
[Color3Intense]
Color=250,189,47
[Color4]
Color=69,133,136
[Color4Faint]
Color=69,133,136
[Color4Intense]
Color=131,165,152
[Color5]
Color=177,98,134
[Color5Faint]
Color=177,98,134
[Color5Intense]
Color=211,134,155
[Color6]
Color=104,157,106
[Color6Faint]
Color=104,157,106
[Color6Intense]
Color=142,192,124
[Color7]
Color=168,153,132
[Color7Faint]
Color=168,153,132
[Color7Intense]
Color=235,219,178
[Foreground]
Color=235,219,178
[ForegroundFaint]
Color=235,219,178
[ForegroundIntense]
Color=235,219,178
[General]
Blur=false
Description=Gruvbox
Opacity=1
Wallpaper=

View File

@@ -0,0 +1,12 @@
[Appearance]
ColorScheme=Breeze
Font=Inconsolata,11,-1,5,57,0,0,0,0,0,Medium
[General]
Name=Main
Parent=FALLBACK/
TerminalColumns=108
TerminalRows=32
[Scrolling]
ScrollBarPosition=2

View File

@@ -0,0 +1,95 @@
[Background]
Color=46,52,64
[BackgroundFaint]
Color=46,52,64
[BackgroundIntense]
Color=46,52,64
[Color0]
Color=59,66,82
[Color0Faint]
Color=59,66,82
[Color0Intense]
Color=59,66,82
[Color1]
Color=191,97,106
[Color1Faint]
Color=191,97,106
[Color1Intense]
Color=191,97,106
[Color2]
Color=163,190,140
[Color2Faint]
Color=163,190,140
[Color2Intense]
Color=163,190,140
[Color3]
Color=235,203,139
[Color3Faint]
Color=235,203,139
[Color3Intense]
Color=235,203,139
[Color4]
Color=129,161,193
[Color4Faint]
Color=129,161,193
[Color4Intense]
Color=129,161,193
[Color5]
Color=180,142,173
[Color5Faint]
Color=180,142,173
[Color5Intense]
Color=180,142,173
[Color6]
Color=136,192,208
[Color6Faint]
Color=136,192,208
[Color6Intense]
Color=136,192,208
[Color7]
Color=216,222,233
[Color7Faint]
Color=216,222,233
[Color7Intense]
Color=216,222,233
[Foreground]
Color=216,222,233
[ForegroundFaint]
Color=216,222,233
[ForegroundIntense]
Color=216,222,233
[General]
Blur=false
Description=Nordic
Opacity=1
Wallpaper=

Binary file not shown.

View File

@@ -0,0 +1 @@
Consider MineClone2

View File

@@ -0,0 +1,52 @@
// Salt's Quake autoexec.cfg
// =========================================
// Base changes
crosshair 0 // Crosshair is for pussies
fov 110 // W I D E
gl_texturemode 3 // Disable texture filtering
r_lerpmodels 1 // Interpolate animations, except torches and muzzleflashes
r_lerpmove 1 // Interpolate entity movement
r_oldwater 0 // Disable old water texture warping animations
r_particles 2 // Enable square particles
r_sky_quality 32 // Probably doesn't do much at all, but might improve skies
r_waterquality 32 // Noticeable improvement at 1440p, least for me
//scr_clock 1 // Enables ingame timer
scr_crosshairscale 2 // Makes the crosshair not tiny as hell
v_gunkick 2 // Interpolates recoil
// Drop a quick motd
// Assumes Quakespasm on Linux
echo ""
echo " .,o' `o,. "
echo " ,o8' `8o. "
echo " o8' `8o "
echo " o8: ;8o "
echo ".88 88. "
echo ":88. ,88: "
echo "`888 888' "
echo " 888o `88888' o888 "
echo " `888o,. `888' .,o888' "
echo " `8888888888888888888' "
echo " `888888888888888' "
echo " `:::8;8;::' "
echo " 888 "
echo " `8' "
echo " `8' "
echo " | "
echo ""
echo "Custom configs loaded from:"
echo ""
echo " ~/.quakespasm/id1/autoexec.cfg"
echo ""
echo "Site-local changes can be made at:"
echo ""
echo " ~/.quakespasm/id1/local.cfg"
echo ""
// Execute another config that exists outside of change control, just in case
exec local.cfg // For site-local changes

View File

@@ -0,0 +1,116 @@
#!/bin/bash
#
# bspwmrc
# bspwm configuration file
#
## Start a hotkey daemon
pgrep sxhkd -u "$UID" || sxhkd &
## Monitor allocation
# Honestly pretty complex
setmon() {
desktops_total=10
desktops_primary=8
desktops_secondary=$(( desktops_total - desktops_primary ))
monitor_primary="$(xrandr -q | awk '/primary/{print $1}')"
monitors_secondary=($(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}'))
# Ensure we have enough for every monitor
if (( desktops_secondary < ${#monitors_secondary[@]} )); then
echo "Adding more desktops to match connected monitors"
desktops_secondary=${#monitors_secondary[@]}
desktops_total=$(( desktops_secondary + desktops_primary ))
fi
if (( ${#monitors_secondary[@]} == 0 )); then
echo "Only one monitor allocated"
layout=$(seq --separator=" " 1 $desktops_total)
echo "Setting layout $layout"
bspc monitor $monitor_primary -d $layout
else
echo "${#monitors_secondary[@]} monitors connected"
deskpermon=$(( desktops_secondary / ${#monitors_secondary[@]} ))
layout=$(seq --separator=" " 1 $desktops_primary)
echo "Setting primary layout $layout"
bspc monitor $monitor_primary -d $layout
for m in $(seq 0 $(( ${#monitors_secondary[@]} - 1 ))); do
layout=$(seq --separator=" " \
$(( 1 + m + desktops_primary )) \
${#monitors_secondary[@]} \
"$desktops_total" \
)
echo "Setting layout for ${monitors_secondary[$m]} to $layout"
bspc monitor ${monitors_secondary[$m]} -d $layout
done
fi
}
setmon
## Behavior
# Tiling behavior
bspc config split_ratio 0.50
bspc config remove_disabled_monitors false
bspc config remove_unplugged_monitors true
# Pointer behavior
bspc config click_to_focus any
bspc config focus_follows_pointer true
bspc config pointer_follows_monitor true
bspc config pointer_modifier mod1
bspc config pointer_action1 move #LMB
bspc config pointer_action2 resize_corner #RMB
# ewmh behavior
bspc config ignore_ewmh_focus true # Fuck you, Discord
## Looks
# Padding
bspc config border_width 6
bspc config window_gap 8
bspc config single_monocle false
bspc config borderless_monocle false
bspc config gapless_monocle false
# Colors
case $THEME in
light)
bspc config normal_border_color "#f2e5bc" #Unfocused
bspc config active_border_color "#8ec07c" #Focused, but current monitor isn't
bspc config focused_border_color "#83a598" #Focused completely
bspc config presel_feedback_color "#ebdbb2" #???
;;
*)
bspc config normal_border_color "#32302f" #Unfocused
bspc config active_border_color "#8ec07c" #Focused, but current monitor isn't
bspc config focused_border_color "#83a598" #Focused completely
bspc config presel_feedback_color "#ebdbb2" #???
;;
esac
## Rules
bspc rule -r '*'
case $HOSTNAME in
dsk-ryzen-0*)
# Big boy gets pseudotiled Firefox
bspc rule -a Firefox state=pseudo_tiled rectangle=1920x1080+0+0
;;
*)
;;
esac
bspc rule -a Steam desktop=7
bspc rule -a KeePassXC desktop=8
bspc rule -a slack desktop=9
bspc rule -a Riot desktop=9
bspc rule -a Element desktop=9
bspc rule -a discord desktop=9
bspc rule -a spotify desktop=10
bspc rule -a cantata desktop=10
bspc rule -a 'Minecraft 1.7.10' state=fullscreen
bspc rule -a 'NieR:Automata' state=fullscreen
bspc rule -a modloader64-gui state=floating border=off
# Plasma rules
bspc rule -a plasmashell state=floating sticky=on border=off
bspc rule -a krunner state=floating layer=above sticky=on border=off
# Widgets
bspc rule -a Conky state=floating layer=below sticky=on
bspc rule -a pavucontrol-qt state=floating layer=above sticky=on

View File

@@ -0,0 +1,90 @@
## BACKEND
backend = "glx";
glx-no-stencil = true;
glx-copy-from-front = false;
# GLX backend: Avoid rebinding pixmap on window damage.
# Probably could improve performance on rapid window content changes, but is known to break things on some drivers (LLVMpipe).
# Recommended if it works.
glx-no-rebind-pixmap = true;
## SHADOWS
shadow = true;
shadow-radius = 30;
shadow-offset-x = -25;
shadow-offset-y = -25;
shadow-opacity = 0.45;
# shadow-red = 0.0;
# shadow-green = 0.0;
# shadow-blue = 0.0;
shadow-ignore-shaped = false;
shadow-exclude = [
"name = 'oneko'",
"name = 'Notification'",
"name = 'xfce4-notifyd'",
"name *= 'VLC'",
"name *= 'compton'",
"name *= 'cpt_frame_window'",
"name *= 'Chromium'",
"name *= 'Chrome'",
"name *= 'Conky'",
"name *= 'Polybar tray window'",
"class_g = 'Conky'",
"class_g ?= 'Notify-osd'",
"class_g ?= 'Xfce4-notifyd'",
"class_g ?= 'Xfce4-power-manager'",
"class_g ?= 'Wine'",
"_GTK_FRAME_EXTENTS@:c"
];
## FADING
fading = true;
# The time between steps in a fade in milliseconds. (default 10).
fade-delta = 5;
# Opacity change between steps while fading in. (default 0.028).
fade-in-step = 0.08;
# Opacity change between steps while fading out. (default 0.03).
fade-out-step = 0.08;
# Fade windows in/out when opening/closing
# no-fading-openclose = true;
fade-exclude = [ ];
## OTHER
# Try to detect WM windows and mark them as active.
mark-wmwin-focused = true;
# Mark all non-WM but override-redirect windows active (e.g. menus).
mark-ovredir-focused = true;
use-ewmh-active-win = true;
detect-rounded-corners = true;
detect-client-opacity = true;
refresh-rate = 143.86;
vsync = true;
# Enable DBE painting mode, intended to use with VSync to (hopefully) eliminate tearing.
# Reported to have no effect, though.
dbe = false;
# Unredirect all windows if a full-screen opaque window is detected, to maximize performance for full-screen windows, like games.
# Known to cause flickering when redirecting/unredirecting windows.
# paint-on-overlay may make the flickering less obvious.
unredir-if-possible = false;
# Specify a list of conditions of windows that should always be considered focused.
focus-exclude = [ ];
detect-transient = true;
detect-client-leader = true;
## WINDOW TYPE SETTINGS
wintypes:
{
tooltip =
{
focus = true;
};
};

View File

@@ -0,0 +1,49 @@
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
conky.config = {
own_window = true,
own_window_title = 'Conky',
own_window_class = 'Conky',
own_window_type = 'desktop',
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
own_window_colour = '232629',
double_buffer = true,
cpu_avg_samples = 2,
net_avg_samples = 2,
no_buffers = true,
update_interval = 1,
use_xft = true,
font = 'IBM Plex Sans:style=Light:size=9',
default_color = '#fffcf6',
color1 = '232629', -- Background
color2 = 'fffcf6', -- Foreground
color3 = '4b5162', -- Background-alt
alignment = 'bottom_right',
xinerama_head = 0,
minimum_height = 0,
minimum_width = 304,
border_width = 0,
border_outer_margin = 0,
border_inner_margin = 16,
gap_x = 27,
gap_y = 72,
format_human_readable = true,
temperature_unit = "celsius",
if_up_strictness = "link",
default_bar_height = 11,
default_bar_width = 130,
default_graph_height = 36,
draw_borders = true,
draw_outline = false,
draw_graph_borders = true,
draw_shades = false
}
conky.text = [[
${font IBM Plex Sans:style=Light:size=96}$alignr${time %l:%M %p}$font
${font IBM Plex Sans:style=Light:size=32}$alignr${time %A, %B %d, %Y}$font
]]

View File

@@ -0,0 +1,334 @@
#! /bin/bash
# _
# ___ ___ _ __ | | ___ _ __ _ ___ _ __
# / __/ _ \| '_ \| |/ / | | |/ _` |/ _ \ '_ \
# | (_| (_) | | | | <| |_| | (_| | __/ | | |
# \___\___/|_| |_|_|\_\\__, |\__, |\___|_| |_|
# |___/ |___/
#
# conkygen.sh
# Create a Conky configuration file dynamically
#
# Copyright (c) 2020 Vintage Salt <rehashedsalt@cock.li>
# Distributed under the terms of the MIT License
#
set -e
# Read-only set-once variables
declare -r _name="$(basename -- "$0")"
# Options
declare _optout="${XDG_CONFIG_HOME:-$HOME/.config}/conky/conky.conf"
declare -i _optbar=1
declare -i _optgraph=1
declare -i _opthelp
declare -i _optverbose
declare -i _opttopitems=4
# Working variables
declare -a _args
declare _return
# Helper functions
log() {
# Print a line to the terminal if _optverbose is greater than $2
# $2 defaults to 0
# loglevel 0: Daily-use messages
# loglevel 1: Detailed but not quite debugging
# loglevel 2: Definitely debugging
[ -z "$1" ] && return 1
if (( _optverbose >= ${2:-0} )); then
printf "%s\\n" "$1"
fi
}
warn() {
# Print a yellow line to the terminal, respecting _optverbose
[ -z "$1" ] && return 1
if (( _optverbose >= ${2:-0} )); then
if [ -t 1 ]; then
printf "\\e[33m%s\\e[0m\\n" "$1"
else
printf "WARN: %s\\n" "$1"
fi
fi
}
error() {
# Print a red line to the terminal, exit if $2 is specified
[ -z "$1" ] && return 1
if [ -t 2 ]; then
printf "\\e[31m%s\\e[0m\\n" "$1" 1>&2
else
printf "ERROR: %s\\n" "$1" 1>&2
fi
[ -z "$2" ] && return
exit "${2:-1}"
}
has() {
# Parse out all arguments and try to find them in path
# If an argument cannot be found, set _return and fail
for prog in "$@"; do
if ! command -v "$prog" > /dev/null 2>&1; then
_return="$prog"
return 1
fi
done
return 0
}
# Core program functions
printhelp() {
cat << EOF
Usage: $_name [OPTION]...
Generate a conky.conf configuration file in the current directory
-o Specify output file. Defaults to
~/.config/conky/conky.conf
-b Hide bars
-g Hide graphs
-h Print this help text
-t Number of items to print in top lists. Defaults to 4
-v Print more status messages. Stacks
Copyright (c) 2020 rehashedsalt@cock.li
Licensed under the MIT license
EOF
}
step_header() {
# Clobber output file with header
cat << EOF > "$_optout"
-- vim: ts=4 sw=4 noet ai cindent syntax=lua
-- WARNING:
-- This file was generated with conkygen. See gen.sh if you need to edit this!
-- Any changes you make here can and probably will be clobbered!
EOF
}
step_config() {
# Append config to the output file
cat << EOF >> "$_optout"
conky.config = {
own_window = true,
own_window_title = 'Conky',
own_window_class = 'Conky',
own_window_type = 'desktop',
own_window_hints = 'undecorated,below,sticky,skip_taskbar,skip_pager',
own_window_argb_visual = true,
own_window_transparent = true,
own_window_colour = '000000',
double_buffer = true,
cpu_avg_samples = 2,
net_avg_samples = 2,
no_buffers = true,
update_interval = 1,
use_xft = true,
font = 'IBM Plex Sans:style=Light:size=9',
default_color = '#ebdbb2',
color1 = '282828', -- Background
color2 = 'ebdbb2', -- Foreground
color3 = '32302f', -- Background-alt
color4 = 'b8bb26', -- Green (Battery)
color6 = '8ec07c', -- Cyan (Network)
color7 = 'fabd2f', -- Yellow (Disk)
color8 = '83a598', -- Blue (CPU)
color9 = 'de869b', -- Magenta (Memory)
alignment = 'top_left',
xinerama_head = 0,
minimum_height = 0,
minimum_width = 304,
border_width = 0,
border_outer_margin = 0,
border_inner_margin = 16,
gap_x = 22,
gap_y = 66,
format_human_readable = true,
temperature_unit = "celsius",
if_up_strictness = "link",
default_bar_height = 11,
default_bar_width = 130,
default_graph_height = 36,
draw_borders = true,
draw_outline = false,
draw_graph_borders = true,
draw_shades = false
}
EOF
}
step_text() {
local -r nproc="$(nproc)"
# Generate our actual functional Conky stuff
# Header
cat <<- 'EOF' >> "$_optout"
conky.text = [[
${font IBM Plex Sans:style=Light:size=64}$alignr${time %l:%M %p}$font
${font IBM Plex Sans:style=Light:size=18}$alignr${time %A, %B %d, %Y}$font
${font IBM Plex Sans:style=Light:size=12}${acpitemp}°C$alignr${no_update $nodename_short}$font
EOF
# CPU info
cat <<- 'EOF' >> "$_optout"
${color3}$hr$color
${font IBM Plex Sans:style=Medium:size=9}CPU$font: $freq_g GHz$alignr$cpu%
EOF
if (( _optgraph > 0 )); then
local gpl=1
if (( nproc <= 2 )); then
gpl=1
elif (( nproc <= 4 )); then
gpl=2
elif (( nproc <= 8 )); then
gpl=4
else
gpl=8
fi
local width=$(( ( 400 - ( gpl - 1 ) * 3 ) / gpl ))
log "Generating $gpl graphs per row of CPU core stats" 1
log "Graphs will be $width wide" 2
local cpuinfo
for i in $(seq 1 "$gpl" "$nproc"); do
# Generate lines
local line
for j in $(seq 0 $(( gpl - 1 ))); do
# Generate graphs
local cpu=$(( i + j ))
log "Generating graph for CPU $cpu" 2
if [ -z "$line" ]; then
line="\${cpugraph cpu$cpu 36,$width}"
else
line="$line \${cpugraph cpu$cpu 36,$width}"
fi
done
# Trim whitespace
line="\${color8}${line%" "}\$color"
log "Appending line: $line" 2
cpuinfo="$cpuinfo$line\n"
unset line
done
while [ "$cpuinfo" != "${cpuinfo%\\n}" ]; do
cpuinfo="${cpuinfo%\\n}"
done
echo -e "$cpuinfo" >> "$_optout"
fi
for i in $(seq $_opttopitems); do
echo "\${color8}\${top name $i}\$color\$alignr\${top cpu $i}%" >> "$_optout"
done
# Memory info
cat <<- 'EOF' >> "$_optout"
${color3}$hr$color
${font IBM Plex Sans:style=Medium:size=9}Memory$font: $mem / $memmax used$alignr$memperc%
EOF
if (( _optgraph > 0 )); then
echo -e '${color9}${memgraph}$color' >> "$_optout"
fi
if (( _optbar > 0 )); then
echo -e 'Memory$alignr$memeasyfree ${color9}${membar}$color' >> "$_optout"
if [ -n "$(swapon)" ]; then
echo "Swap\$alignr\$swapfree \${color9}\${swapbar}\$color" >> "$_optout"
fi
fi
for i in $(seq $_opttopitems); do
echo "\${color9}\${top_mem name $i}\$color\$alignr\${top_mem mem $i}%" >> "$_optout"
done
# Disk info
cat <<- 'EOF' >> "$_optout"
${color3}$hr$color
${font IBM Plex Sans:style=Medium:size=9}Disk$font (R/W):$alignr${diskio /dev/sda}
EOF
if (( _optgraph > 0 )); then
echo '${color7}${diskiograph_read /dev/sda 36,200} ${diskiograph_write /dev/sda 36,200}$color' >> "$_optout"
fi
# Mountpoint detection
if (( _optbar > 0 )); then
for mountpoint in / /home /var /usr /opt /boot /boot/efi; do
if mountpoint $mountpoint > /dev/null 2>&1; then
echo "$mountpoint\$alignr\${fs_free $mountpoint} \${color7}\${fs_bar $mountpoint}\$color" >> "$_optout"
fi
done
fi
for i in $(seq $_opttopitems); do
echo "\${color7}\${top_io name $i}\$color\$alignr\${top_io io_perc $i}%" >> "$_optout"
done
# Networking
cat <<-'EOF' >>"$_optout"
${color3}$hr$color
${font IBM Plex Sans:style=Medium:size=9}Network$font:${alignr}Default $gw_iface${if_up wlp1s0}
EOF
for interface in $(iw dev | awk '$1=="Interface"{print $2}'); do
echo "$interface (U/D): \$alignr\${addr $interface} / \${wireless_essid $interface}" >> "$_optout"
if (( _optgraph > 0 )); then
echo "\${color6}\${upspeedgraph $interface 36,200} \${downspeedgraph $interface 36,200}\$color" >> "$_optout"
fi
done
echo "]]" >> "$_optout"
}
genconfig() {
log "Generating config: $_optout"
step_header
step_config
step_text
}
# Main
main() {
# Parse out arguments
while [ -n "$1" ]; do
# Parse out flags
while getopts ":bgho:t:v" opt; do
case $opt in
b)
_optbar=0
;;
g)
_optgraph=0
;;
o)
_optout="$OPTARG"
;;
h)
_opthelp=1
;;
t)
_opttopitems="$OPTARG"
;;
v)
_optverbose+=1
;;
:)
error "Option requires argument: -$OPTARG" 2
;;
*)
error "Invalid option: -$OPTARG" 2
;;
esac
done
# Store arguments
shift $((OPTIND - 1))
if [ -n "$1" ]; then
_args+=("$1")
shift
fi
unset OPTIND
done
# Early hook for help
[ -n "$_opthelp" ] && printhelp && exit 0
# Validate critical options
if ! (( _opttopitems >= 0 )); then
error "Option -t requires non-negative integer as argument" 2
fi
# Validate core program dependencies
log "Validating dependencies" 2
if ! has awk basename iw seq; then
error "Failed to find program: $_return" 1
fi
# Do the do
genconfig
exit 0
}
main "$@"

View File

@@ -0,0 +1,321 @@
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "600x8-8+64"
corner_radius = 0
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 4
# Padding between text and separator.
padding = 12
# Horizontal padding.
horizontal_padding = 12
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 6
# Defines color of the frame around the notification window.
frame_color = "#f2e5bc"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
idle_threshold = 120
### Text ###
#font = Monospace 8
font = IBM Plex Sans 12
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# Markup is allowed
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Merge multiple notifications with the same content
stack_duplicates = true
# Hide the count of merged notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = right
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 48
# Paths to default icons.
icon_path = /usr/share/icons/Papirus-Light/48x48/status/:/usr/share/icons/Papirus-Light/48x48/devices/:/usr/share/icons/Papirus-Light/48x48/apps
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/rofi -dmenu -p dunst:
# Browser for opening urls in context menu.
browser = xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = mod1+shift+space
# Close all notifications.
close_all = mod1+shift+enter
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
history = mod1+shift+d
# Context menu.
context = mod1+shift+o
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#fbf1c7"
foreground = "#3c3836"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
background = "#fbf1c7"
foreground = "#3c3836"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
[urgency_critical]
background = "#fbf1c7"
foreground = "#fb4934"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
# Messages can be matched by "appname", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
# Shell-like globbing will get expanded.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
# vim: ft=cfg

View File

@@ -0,0 +1,321 @@
[global]
### Display ###
# Which monitor should the notifications be displayed on.
monitor = 0
# Display notification on focused monitor. Possible modes are:
# mouse: follow mouse pointer
# keyboard: follow window with keyboard focus
# none: don't follow anything
#
# "keyboard" needs a window manager that exports the
# _NET_ACTIVE_WINDOW property.
# This should be the case for almost all modern window managers.
#
# If this option is set to mouse or keyboard, the monitor option
# will be ignored.
follow = mouse
# The geometry of the window:
# [{width}]x{height}[+/-{x}+/-{y}]
# The geometry of the message window.
# The height is measured in number of notifications everything else
# in pixels. If the width is omitted but the height is given
# ("-geometry x2"), the message window expands over the whole screen
# (dmenu-like). If width is 0, the window expands to the longest
# message displayed. A positive x is measured from the left, a
# negative from the right side of the screen. Y is measured from
# the top and down respectively.
# The width can be negative. In this case the actual width is the
# screen width minus the width defined in within the geometry option.
geometry = "500x8-6+50"
corner_radius = 0
# Show how many messages are currently hidden (because of geometry).
indicate_hidden = yes
# Shrink window if it's smaller than the width. Will be ignored if
# width is 0.
shrink = no
# The transparency of the window. Range: [0; 100].
# This option will only work if a compositing window manager is
# present (e.g. xcompmgr, compiz, etc.).
transparency = 0
# The height of the entire notification. If the height is smaller
# than the font height and padding combined, it will be raised
# to the font height and padding.
notification_height = 0
# Draw a line of "separator_height" pixel height between two
# notifications.
# Set to 0 to disable.
separator_height = 4
# Padding between text and separator.
padding = 12
# Horizontal padding.
horizontal_padding = 12
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 4
# Defines color of the frame around the notification window.
frame_color = "#32302f"
# Define a color for the separator.
# possible values are:
# * auto: dunst tries to find a color fitting to the background;
# * foreground: use the same color as the foreground;
# * frame: use the same color as the frame;
# * anything else will be interpreted as a X color.
separator_color = frame
# Sort messages by urgency.
sort = yes
# Don't remove messages, if the user is idle (no mouse or keyboard input)
# for longer than idle_threshold seconds.
# Set to 0 to disable.
idle_threshold = 120
### Text ###
#font = Monospace 8
font = Roboto 10
# The spacing between lines. If the height is smaller than the
# font height, it will get raised to the font height.
line_height = 0
# Possible values are:
# full: Allow a small subset of html markup in notifications:
# <b>bold</b>
# <i>italic</i>
# <s>strikethrough</s>
# <u>underline</u>
#
# For a complete reference see
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
#
# strip: This setting is provided for compatibility with some broken
# clients that send markup even though it's not enabled on the
# server. Dunst will try to strip the markup but the parsing is
# simplistic so using this option outside of matching rules for
# specific applications *IS GREATLY DISCOURAGED*.
#
# no: Disable markup parsing, incoming notifications will be treated as
# plain text. Dunst will not advertise that it has the body-markup
# capability if this is set as a global setting.
#
# It's important to note that markup inside the format option will be parsed
# regardless of what this is set to.
markup = full
# The format of the message. Possible variables are:
# %a appname
# %s summary
# %b body
# %i iconname (including its path)
# %I iconname (without its path)
# %p progress value if set ([ 0%] to [100%]) or nothing
# %n progress value if set without any extra characters
# Markup is allowed
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\n%b"
# Alignment of message text.
# Possible values are "left", "center" and "right".
alignment = left
# Show age of message if message is older than show_age_threshold
# seconds.
# Set to -1 to disable.
show_age_threshold = 60
# Split notifications into multiple lines if they don't fit into
# geometry.
word_wrap = yes
# Ignore newlines '\n' in notifications.
ignore_newline = no
# Merge multiple notifications with the same content
stack_duplicates = true
# Hide the count of merged notifications with the same content
hide_duplicate_count = false
# Display indicators for URLs (U) and actions (A).
show_indicators = yes
### Icons ###
# Align icons left/right/off
icon_position = right
# Scale larger icons down to this size, set to 0 to disable
max_icon_size = 48
# Paths to default icons.
icon_path = /usr/share/icons/Papirus-Dark/48x48/status/:/usr/share/icons/Papirus-Dark/48x48/devices/:/usr/share/icons/Papirus-Dark/48x48/apps
### History ###
# Should a notification popped up from history be sticky or timeout
# as if it would normally do.
sticky_history = yes
# Maximum amount of notifications kept in history
history_length = 20
### Misc/Advanced ###
# dmenu path.
dmenu = /usr/bin/rofi -dmenu -p dunst:
# Browser for opening urls in context menu.
browser = xdg-open
# Always run rule-defined scripts, even if the notification is suppressed
always_run_script = true
# Define the title of the windows spawned by dunst
title = Dunst
# Define the class of the windows spawned by dunst
class = Dunst
# Print a notification on startup.
# This is mainly for error detection, since dbus (re-)starts dunst
# automatically after a crash.
startup_notification = false
### Legacy
# Use the Xinerama extension instead of RandR for multi-monitor support.
# This setting is provided for compatibility with older nVidia drivers that
# do not support RandR and using it on systems that support RandR is highly
# discouraged.
#
# By enabling this setting dunst will not be able to detect when a monitor
# is connected or disconnected which might break follow mode if the screen
# layout changes.
force_xinerama = false
# Experimental features that may or may not work correctly. Do not expect them
# to have a consistent behaviour across releases.
[experimental]
# Calculate the dpi to use on a per-monitor basis.
# If this setting is enabled the Xft.dpi value will be ignored and instead
# dunst will attempt to calculate an appropriate dpi value for each monitor
# using the resolution and physical size. This might be useful in setups
# where there are multiple screens with very different dpi values.
per_monitor_dpi = false
[shortcuts]
# Shortcuts are specified as [modifier+][modifier+]...key
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
# "mod3" and "mod4" (windows-key).
# Xev might be helpful to find names for keys.
# Close notification.
close = mod1+shift+space
# Close all notifications.
close_all = mod1+shift+enter
# Redisplay last message(s).
# On the US keyboard layout "grave" is normally above TAB and left
# of "1". Make sure this key actually exists on your keyboard layout,
# e.g. check output of 'xmodmap -pke'
history = mod1+shift+d
# Context menu.
context = mod1+shift+o
[urgency_low]
# IMPORTANT: colors have to be defined in quotation marks.
# Otherwise the "#" and following would be interpreted as a comment.
background = "#282828"
foreground = "#ebdbb2"
timeout = 10
# Icon for notifications with low urgency, uncomment to enable
#icon = /path/to/icon
[urgency_normal]
background = "#282828"
foreground = "#ebdbb2"
timeout = 10
# Icon for notifications with normal urgency, uncomment to enable
#icon = /path/to/icon
[urgency_critical]
background = "#282828"
foreground = "#fabd2f"
timeout = 0
# Icon for notifications with critical urgency, uncomment to enable
#icon = /path/to/icon
# Every section that isn't one of the above is interpreted as a rules to
# override settings for certain messages.
# Messages can be matched by "appname", "summary", "body", "icon", "category",
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
# "background", "new_icon" and "format".
# Shell-like globbing will get expanded.
#
# SCRIPTING
# You can specify a script that gets run when the rule matches by
# setting the "script" option.
# The script will be called as follows:
# script appname summary body icon urgency
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
#
# NOTE: if you don't want a notification to be displayed, set the format
# to "".
# NOTE: It might be helpful to run dunst -print in a terminal in order
# to find fitting options for rules.
#[espeak]
# summary = "*"
# script = dunst_espeak.sh
#[script-test]
# summary = "*script*"
# script = dunst_test.sh
#[ignore]
# # This notification will not be displayed
# summary = "foobar"
# format = ""
#[history-ignore]
# # This notification will not be saved in history
# summary = "foobar"
# history_ignore = yes
#[signed_on]
# appname = Pidgin
# summary = "*signed on*"
# urgency = low
#
#[signed_off]
# appname = Pidgin
# summary = *signed off*
# urgency = low
#
#[says]
# appname = Pidgin
# summary = *says*
# urgency = critical
#
#[twitter]
# appname = Pidgin
# summary = *twitter.com*
# urgency = normal
#
# vim: ft=cfg

View File

@@ -3,8 +3,6 @@
:
command -v unagi
unagi
command -v picom
picom
command -v compton
compton
command -v xcompmgr

View File

@@ -0,0 +1,16 @@
[Settings]
gtk-theme-name=Materia-Gruvbox
gtk-icon-theme-name=Papirus-Dark-Gruvbox
gtk-font-name=IBM Plex Sans Medium 10
gtk-cursor-theme-name=Breeze_Snow
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
gtk-button-images=1
gtk-menu-images=1
gtk-enable-event-sounds=1
gtk-enable-input-feedback-sounds=1
gtk-xft-antialias=1
gtk-xft-hinting=1
gtk-xft-hintstyle=hintslight
gtk-xft-rgba=rgb

View File

@@ -0,0 +1,78 @@
ACCENT_BG=83a598
ARC_TRANSPARENCY=True
ARC_WIDGET_BORDER_COLOR=59554a
BASE16_GENERATE_DARK=False
BASE16_INVERT_TERMINAL=False
BASE16_MILD_TERMINAL=False
BG=282828
BTN_BG=282828
BTN_FG=610a7a
BTN_OUTLINE_OFFSET=-3
BTN_OUTLINE_WIDTH=1
CARET1_FG=cac10f
CARET2_FG=cac10f
CARET_SIZE=0.04
CINNAMON_OPACITY=1.0
FG=ebdbb2
GRADIENT=0.01
GTK3_GENERATE_DARK=True
HDR_BG=32302f
HDR_BTN_BG=282828
HDR_BTN_FG=01bf9b
HDR_FG=ebdbb2
ICONS_ARCHDROID=d2f000
ICONS_DARK=282828
ICONS_LIGHT=bc8ef4
ICONS_LIGHT_FOLDER=83a598
ICONS_MEDIUM=458588
ICONS_NUMIX_STYLE=0
ICONS_STYLE=papirus_icons
ICONS_SYMBOLIC_ACTION=ebdbb2
ICONS_SYMBOLIC_PANEL=ebdbb2
MATERIA_PANEL_OPACITY=0.6
MATERIA_SELECTION_OPACITY=0.32
MATERIA_STYLE_COMPACT=True
MENU_BG=12afaf
MENU_FG=01bf9b
NAME="Gruvbox/Dark"
OUTLINE_WIDTH=1
ROUNDNESS=6
SEL_BG=83a598
SEL_FG=282828
SPACING=3
SPOTIFY_PROTO_BG=282828
SPOTIFY_PROTO_FG=ebdbb2
SPOTIFY_PROTO_SEL=b8bb26
SURUPLUS_GRADIENT1=21826e
SURUPLUS_GRADIENT2=f728dd
SURUPLUS_GRADIENT_ENABLED=False
TERMINAL_ACCENT_COLOR=f728dd
TERMINAL_BACKGROUND=237095
TERMINAL_BASE_TEMPLATE=material
TERMINAL_COLOR0=36868b
TERMINAL_COLOR1=ffec53
TERMINAL_COLOR10=acffb8
TERMINAL_COLOR11=fff453
TERMINAL_COLOR12=91ffff
TERMINAL_COLOR13=bd68aa
TERMINAL_COLOR14=36faed
TERMINAL_COLOR15=fcffff
TERMINAL_COLOR2=9bff9d
TERMINAL_COLOR3=ffff5a
TERMINAL_COLOR4=13fdff
TERMINAL_COLOR5=f972b6
TERMINAL_COLOR6=10eadb
TERMINAL_COLOR7=dfffff
TERMINAL_COLOR8=479ba2
TERMINAL_COLOR9=fffba0
TERMINAL_FOREGROUND=d2f000
TERMINAL_THEME_ACCURACY=128
TERMINAL_THEME_AUTO_BGFG=True
TERMINAL_THEME_EXTEND_PALETTE=False
TERMINAL_THEME_MODE=smarty
THEME_STYLE=materia
TXT_BG=282828
TXT_FG=d2f000
UNITY_DEFAULT_LAUNCHER_STYLE=False
WM_BORDER_FOCUS=f728dd
WM_BORDER_UNFOCUS=c158ce

View File

@@ -0,0 +1,315 @@
# vim:ft=dosini
# _ _
# _ __ ___ | |_ _| |__ __ _ _ __
# | '_ \ / _ \| | | | | '_ \ / _` | '__|
# | |_) | (_) | | |_| | |_) | (_| | |
# | .__/ \___/|_|\__, |_.__/ \__,_|_|
# |_| |___/
#
# Copyright (c) 2020 Vintage Salt <rehashedsalt@cock.li>
# Distributed under the terms of the MIT License
#
## VARIABLES
[res/colors]
red = #fb4934
green = #b8bb26
yellow = #fabd2f
blue = #83a598
magenta = #de869b
cyan = #8ec07c
white = #ebdbb2
black = #282828
gray = #32302f
bg = ${env:PB_COLOR_BG:#282828}
fg = ${env:PB_COLOR_FG:#ebdbb2}
border = ${env:PB_COLOR_BORDER:#32302f}
selection = #83a598
[res/config]
bar-width = 50
bar-fill = |
bar-empty = |
bar-indicator =
border-size = 6
padding = 2
[settings]
screenchange-reload = true
format-padding = ${res/config.padding}
format-background = ${res/colors.bg}
## BARS
[template/bar]
bottom = false
wm-restack = ${env:PB_WM_RESTACK:i3}
tray-maxsize = 24
background = ${res/colors.bg}
foreground = ${res/colors.fg}
border-color = ${res/colors.border}
tray-background = ${res/colors.bg}
height = 48
width = 100%:-16
offset-x = 8
padding = 2
border-size = ${res/config.border-size}
font-0 = "IBM Plex Sans:style=Medium:size=12;2"
font-1 = "Deja Vu Sans Mono:style=Regular:size=12;2"
font-2 = "IBM Plex Sans:style=Bold:size=12;2"
font-3 = "Fork Awesome:style=Regular:size=12;2"
font-4 = "Font Awesome 5 Free:style=Regular:size=12;2"
font-5 = "Font Awesome 5 Brands:style=Regular:size=12;2"
[bar/primary]
monitor = ${env:PB_MONITOR:eDP-1}
inherit = template/bar
tray-position = right
modules-left = i3 bspwm service-ansible service-backup reboot-required
modules-center = date
modules-right = xkeyboard backlight pulse battery battery-bat1 |
border-top-size = 0
[bar/secondary]
monitor= ${env:PB_MONITOR:HDMI-A-0}
inherit = template/bar
modules-left = i3 bspwm
modules-right = xkeyboard pulse wlan-desktop-stats mpd | date
border-top-size = 0
## MODULES
[module/|]
type = custom/text
content = |
content-foreground = ${res/colors.border}
[module/backlight]
type = internal/xbacklight
format = <bar>
format-prefix = "BRI: "
format-prefix-foreground = ${res/colors.blue}
bar-width = ${res/config.bar-width}
bar-fill = ${res/config.bar-fill}
bar-fill-foreground = ${res/colors.blue}
bar-empty = ${res/config.bar-empty}
bar-empty-foreground = ${res/colors.border}
bar-indicator = ${res/config.bar-indicator}
[module/battery]
type = internal/battery
full-at = 100
time-format = %H:%M
interval = 60
format-charging = <ramp-capacity> <label-charging>
format-charging-foreground = ${res/colors.green}
format-discharging = <ramp-capacity> <label-discharging>
format-full = <ramp-capacity> <label-full>
format-full-foreground = ${res/colors.green}
label-charging = %percentage%%
label-discharging = %percentage%%
label-full = %percentage%%
ramp-capacity-0 = 
ramp-capacity-0-foreground = ${res/colors.yellow}
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
[module/battery-bat1]
type = internal/battery
inherit = module/battery
battery = BAT1
[module/bspwm]
type = internal/bspwm
format = <label-state> <label-mode>
format-padding = 0
enable-scroll = false
pin-workspaces = true
label-mode-padding = 4
label-mode-background = ${res/colors.red}
label-focused = %name%
label-focused-padding = 4
label-focused-font = 3
label-focused-foreground = ${res/colors.bg}
label-focused-background = ${res/colors.selection}
label-occupied = %name%
label-occupied-padding = 4
label-occupied-font = 3
label-urgent = %name%
label-urgent-padding = 4
label-urgent-font = 3
label-urgent-foreground = ${res/colors.bg}
label-urgent-background = ${res/colors.yellow}
label-empty = %name%
label-empty-foreground = ${res/colors.border}
label-empty-padding = 4
label-monocle = 
label-monocle-padding = 4
label-monocle-background = ${res/colors.red}
label-pseudotiled = 
label-pseudotiled-padding = ${self.label-monocle-padding}
label-pseudotiled-background = ${res/colors.border}
label-floating = 
label-floating-padding = ${self.label-monocle-padding}
label-floating-background = ${res/colors.border}
[module/cpu]
type = internal/cpu
interval = 1
format = <bar-load>
format-prefix = "CPU: "
format-prefix-foreground = ${res/colors.blue}
bar-load-width = ${res/config.bar-width}
bar-load-fill = ${res/config.bar-fill}
bar-load-fill-foreground = ${res/colors.blue}
bar-load-empty = ${res/config.bar-empty}
bar-load-empty-foreground = ${res/colors.border}
bar-load-indicator = ${res/config.bar-indicator}
[module/date]
type = internal/date
date = %a %b %d
time = %I:%M %p
interval = 5
format = <label>
label = %{T3}%date% %time%%{T-}
[module/fshome]
type = internal/fs
mount-0 = /home
format-mounted = <bar-used> <label-mounted>
format-mounted-prefix = "Home: "
format-mounted-prefix-foreground = ${res/colors.yellow}
format-unmounted =
label-mounted = %free% free
bar-used-width = ${res/config.bar-width}
bar-used-fill = ${res/config.bar-fill}
bar-used-fill-foreground = ${res/colors.yellow}
bar-used-empty = ${res/config.bar-empty}
bar-used-empty-foreground = ${res/colors.border}
bar-used-indicator = ${res/config.bar-indicator}
[module/fsroot]
type = internal/fs
mount-0 = /
format-mounted = <bar-used> <label-mounted>
format-mounted-prefix = "Root: "
format-mounted-prefix-foreground = ${res/colors.yellow}
label-mounted = %free% free
bar-used-width = ${res/config.bar-width}
bar-used-fill = ${res/config.bar-fill}
bar-used-fill-foreground = ${res/colors.yellow}
bar-used-empty = ${res/config.bar-empty}
bar-used-empty-foreground = ${res/colors.border}
bar-used-indicator = ${res/config.bar-indicator}
[module/i3]
type = internal/i3
format = <label-state> <label-mode>
format-padding = 0
enable-scroll = false
pin-workspaces = true
label-mode-padding = 4
label-mode-background = ${res/colors.red}
label-focused = %name%
label-focused-padding = 4
label-focused-foreground = ${res/colors.bg}
label-focused-background = ${res/colors.selection}
label-unfocused = %name%
label-unfocused-background = ${res/colors.bg}
label-unfocused-padding = 4
label-visible = %name%
label-visible-background = ${res/colors.border}
label-visible-padding = 4
[module/memory]
type = internal/memory
format = <bar-used> <label>
format-prefix = "Memory: "
format-prefix-foreground = ${res/colors.magenta}
label = %gb_free:8%
bar-used-width = ${res/config.bar-width}
bar-used-fill = ${res/config.bar-fill}
bar-used-fill-foreground = ${res/colors.magenta}
bar-used-empty = ${res/config.bar-empty}
bar-used-empty-foreground = ${res/colors.border}
bar-used-indicator = ${res/config.bar-indicator}
[module/mpd]
type=internal/mpd
format-online=<label-song> <label-time>
label-song=%artist% - %title%
label-time=%elapsed% / %total%
[module/pulse]
type = internal/pulseaudio
format-volume = <label-volume>
format-volume-prefix = " "
format-muted = <label-muted>
format-muted-prefix = " "
format-muted-foreground = ${res/colors.border}
[module/reboot-required]
type = custom/script
interval = 300
exec = "echo Reboot required"
exec-if = "[ -f /var/run/reboot-required ]"
format-foreground = ${res/colors.yellow}
[module/service-ansible]
type = custom/script
interval = 300
exec = "echo "
exec-if = "systemctl is-failed --quiet ansible-pull.service"
format-foreground = ${res/colors.red}
[module/service-backup]
type = custom/script
interval = 300
exec = "echo "
exec-if = "systemctl is-failed --quiet backup.service"
format-foreground = ${res/colors.red}
[module/wlan-laptop]
type = internal/network
interface = wlp0s20f3
format-connected-prefix = "WLAN: "
format-connected-prefix-foreground = ${res/colors.green}
format-disconnected-prefix = "WLAN: "
format-disconnected-prefix-foreground = ${res/colors.green}
label-connected = %essid%
label-disconnected = Disconnected
[module/wlan-desktop]
type = internal/network
interface = wlp5s0
format-connected-prefix = "WLAN: "
format-connected-prefix-foreground = ${res/colors.green}
format-disconnected-prefix = "WLAN: "
format-disconnected-prefix-foreground = ${res/colors.green}
label-connected = %essid%
label-disconnected = Disconnected
[module/wlan-desktop-stats]
type = internal/network
interface = wlp5s0
label-connected = U %upspeed% D %downspeed%
[module/xkeyboard]
type = internal/xkeyboard
format = <label-indicator>
label-indicator-on = %icon%
label-indicator-off = %icon%
label-indicator-on-capslock = 
label-indicator-on-capslock-padding = 4
label-indicator-on-capslock-background = ${res/colors.yellow}
label-indicator-on-capslock-foreground = ${res/colors.black}
[module/xwindow]
type = internal/xwindow
label = %title%
label-maxlen = 100

View File

@@ -0,0 +1,82 @@
#! /bin/bash
#
# launch.sh
# A Polybar launch script with a heck of a lot of compat
# Copyright (C) 2019 Vintage Salt <rehashedsalt@cock.li>
#
# Distributed under terms of the MIT license.
#
log() {
[ -z "$1" ] && return 1
printf "$1\\n"
}
# Trap our exit
die() {
kill $(jobs -p)
}
trap die EXIT
# Steps
step_fallback() {
if ! command -v polybar > /dev/null 2>&1; then
if command -v tint2 > /dev/null 2>&1; then
log "Executing fallback"
exec tint2
fi
log "No valid bars found"
exit 51
fi
}
step_configure() {
# Restack compatibility
if pgrep -U "$UID" bspwm > /dev/null 2>&1; then
export PB_WM_RESTACK="bspwm"
elif pgrep -U "$UID" i3 > /dev/null 2>&1; then
export PB_WM_RESTACK="i3"
fi
# Light theme
if [ "$THEME" == "light" ]; then
export PB_COLOR_BG="#fbf1c7"
export PB_COLOR_FG="#3c3836"
export PB_COLOR_BORDER="#f2e5bc"
fi
}
step_spawn_primary() {
# Spawn bars on the primary monitor
log "Spawning primary bars"
export PB_MONITOR=$(xrandr -q | awk '/primary/{print $1}')
polybar -r primary &
polybar -r primary-2 &
}
step_spawn_secondary() {
# Spawn more for each secondary
log "Spawning secondary bars"
export secondary_monitors=$(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}')
if [ "$secondary_monitors" == "" ]; then
return 0
fi
for monitor in $secondary_monitors; do
PB_MONITOR=$monitor
polybar -r secondary &
polybar -r secondary-2 &
done
}
step_wait() {
# And wait
log "Waiting"
wait
}
# Main
main() {
step_fallback
step_configure
step_spawn_primary
step_spawn_secondary
step_wait
}
main "$@"

View File

@@ -0,0 +1,129 @@
/*
* config.rasi
* Copyright (C) 2020 Vintage Salt <rehashedsalt@cock.li>
*
* Distributed under terms of the MIT License
*
* See rofi-theme(5) for documentation
*/
configuration {
matching: "normal";
show-icons: true;
icon-theme: "Papirus-Gruvbox-Dark";
modi: "drun,ssh,window";
}
* {
background: #282828;
background-alt: #32302f;
foreground: #ebdbb2;
foreground-alt: #fb4934;
yellow: #fabd2f;
blue: #83a598;
cyan: #8ec07c;
text-color: @foreground;
background-color: @background;
font: "IBM Plex Sans 10";
}
#window {
location: southwest;
anchor: southwest;
border-color: @background-alt;
background-color: @background;
border: 4px 4px 0 0;
height: 60%;
width: 30%;
padding: 0em;
}
#inputbar {
background-color: @background-alt;
padding: 1em;
}
#case-indicator {
enabled: false;
}
#prompt {
enabled: false;
}
#textbox-prompt-colon {
enabled: false;
}
#entry {
background-color: inherit;
font: "IBM Plex Sans 12";
padding: 0.5em;
}
#num-filtered-rows {
background-color: inherit;
font: "IBM Plex Sans 12";
padding: 0.5em;
}
#textbox-num-sep {
background-color: inherit;
font: "IBM Plex Sans 12";
padding: 0.5em 0em;
}
#num-rows {
background-color: inherit;
font: "IBM Plex Sans 12";
padding: 0.5em;
}
#message {
padding: 4px;
}
#textbox {
padding: 4px 12px 4px 12px;
font-color: @foreground-alt;
}
#listview {
padding: 1em;
border: none;
}
#scrollbar {
handle-color: @background-alt;
enabled: false;
}
#element {
padding: 1em;
}
#element alternate.normal {
background-color: @background;
}
#element normal active {
text-color: @cyan;
}
#element normal urgent {
text-color: @yellow;
}
#element selected normal {
background-color: @blue;
text-color: @background;
}
#element selected active {
background-color: @cyan;
text-color: @background;
}
#element selected urgent {
background-color: @yellow;
text-color: @background;
}
#sidebar {
}
#button {
padding: 8px;
}
#button selected {
background-color: @background-alt;
}
/* vim:ft=css
*/

View File

@@ -0,0 +1,74 @@
# vim:ft=bash
## GENERAL HOTKEYS
alt + Return
$TERMINAL
alt + space
rofi -show drun
alt + backslash
rofi -show ssh
alt + Tab
rofi -show window
alt + Escape
pkill -USR1 -x sxhkd
ctrl + alt + l
/usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet
## APPLICATION TOGGLES
alt + p
killall pavucontrol-qt || pavucontrol-qt
alt + shift + m
killall compton || ~/.firestarter/firestarter start compositor
## HARDWARE CONTROLS
XF86Audio{Raise,Lower}Volume
pactl set-sink-volume 0 {+,-}5%
XF86AudioMute
pactl set-sink-mute 0 toggle
XF86MonBrightness{Up,Down}
xbacklight {-inc,-dec} 5
## BSPWM
# Reload configs
alt + shift + r
~/.config/bspwm/bspwmrc
# Close or kill node
alt + {_,shift + }q
bspc node -{c,k}
# Focus or move the node in the given direction
alt + {_,shift + }{h,j,k,l}
bspc node -{f,s} {west,south,north,east}
# Focus or send to the given desktop
alt + {_,shift + }{1-9,0}
bspc {desktop -f,node -d} '{1-9,10}'
# Toggle monocle mode
alt + m
bspc desktop -l next
# Switch current node with biggest on current desktop
alt + g
bspc node -s biggest.local --follow
# Focus the node for the given path jump
alt + {a,c}
bspc node -f {@parent,biggest.descendant_of}
# Rotate, equalize, or balance selection
alt + {r,e,u}
bspc node -{R 90,E,B @/}
# Set window states
alt + {t,shift + t,f,shift + f}
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
# Set node flags
alt + ctrl + {x,y,z}
bspc node -g {locked,sticky,private}
# Focus the next/previous node in the current desktop
alt + {_,shift + }c
bspc node -f {next,prev}.local
# Focus the next/previous desktop in the current monitor
alt + {comma,period}
bspc desktop -f {prev,next}.local
# Expand a window by moving one of its side outward
super + alt + {h,j,k,l}
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
# Contract a window by moving one of its side inward
super + alt + shift + {h,j,k,l}
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}

View File

@@ -0,0 +1,7 @@
# Managed manually
# If overwritten by lxappearance, assume it will be overwritten AGAIN by dot management scripts
gtk-theme-name="Materia-Gruvbox"
gtk-icon-theme-name="Papirus-Dark-Gruvbox"
gtk-font-name="IBM Plex Sans Medium 10"
gtk-cursor-theme-name="Breeze_Snow"

View File

@@ -21,10 +21,6 @@ case $(hostname) in
vm-*)
xrandr --output Virtual-1 --mode 1920x1080 --rate 60 --primary
;;
dsk-cstm-0*)
xrandr --output DisplayPort-1 --mode 2560x1440 --rate 144 --primary
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --pos 2560x360
;;
esac
# Wallpaper generation because why not
#if [ -x "$HOME/.wpgen/wpgen" ]; then

View File

@@ -21,7 +21,7 @@ case $(hostname) in
vm-*)
xrandr --output Virtual-1 --mode 1920x1080 --rate 60 --primary
;;
dsk-cstm-0*)
dsk-ryzen-0*)
xrandr --output DisplayPort-1 --mode 2560x1440 --rate 144 --primary
xrandr --output HDMI-A-0 --mode 1920x1080 --rate 60 --pos 2560x360
;;

View File

@@ -1,3 +1,9 @@
[user]
email = rehashedsalt@cock.li
name = Salt
email = jacob@babor.tech
name = Jacob Babor
[pull]
rebase = true
[push]
autoSetupRemote = true
[init]
defaultBranch = master

View File

@@ -0,0 +1,68 @@
# vim: set ft=cfg:
[global]
## BEHAVIOR
follow = mouse # Notifications follow the monitor with the mouse
format = "<span font='Bold'>%s</span> <span font='Light'>(%a)</span>\n%b"
hide_duplicate_count = false # Hide count of stacked notifs
ignore_newline = false # Ignore \n (for some reason)
indicate_hidden = true # Show how many messages are currently hidden
idle_threshold = 120 # Time in seconds before user is considered idle
markup = full # Whether to disable markup features (see manpage)
show_age_threshold = 60 # Shows age if message is older than this (in sec)
show_indicators = true # Show hints for interactable notifs
sort = true # Sort messages by urgency.
stack_duplicates = true
timeout = 10 # Time in seconds before the thing fades
## MISC CONFIGURATION
always_run_script = true # Runs scripts for rules even if they're hidden
browser = xdg-open
dmenu = /usr/bin/wofi --dmenu -p dunst:
## WINDOW CONFIGURATION
title = Dunst
class = Dunst
## HISTORY
sticky_history = yes # Notifs pulled from history stay onscreen
history_length = 20 # Buffer size
## LOOKS
# COLORS
# Note that rules defined later on can and will override these
# All colors must be quoted so as to not misinterpret as comments
background= "#fbf1c7cc" # Background of the notification
frame_color = "#f2e5bccc"
separator_color = frame
foreground = "#3c3836" # Font color, for body and title
highlight = "#b8bb26" # Progress bars
# SIZE AND POSITIONING
width = 400
height = 300
offset = 8x8 # This takes into account any bars
corner_radius = 8
transparency = 0
# PROGRESS BAR
progress_bar = true
progress_bar_corner_radius = 8
progress_bar_horizontal_alignment = left
progress_bar_frame_width = 2
progress_bar_height = 8
# INTERIOR FORMATTING
frame_width = 6 # Defines width in pixels of frame
horizontal_padding = 12 # Horizontal padding.
padding = 12 # Padding between text and separator.
separator_height = 4
# TEXT
alignment = left
font = IBM Plex Sans 10
line_height = 0
word_wrap = yes
# ICONS
icon_path = /usr/share/icons/Papirus-Light/48x48/status/:/usr/share/icons/Papirus-Light/48x48/devices/:/usr/share/icons/Papirus-Light/48x48/apps
icon_position = right
icon_corner_radius = 8
max_icon_size = 48
[urgency_critical]
foreground = "#fb4934"

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