Compare commits

...

328 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
62892 changed files with 5091 additions and 369685 deletions

2
.gitignore vendored
View File

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

15
.gitmodules vendored
View File

@@ -34,12 +34,15 @@
[submodule "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 = desktop-common/.firestarter
url = git@git.desu.ltd:salt/firestarter
[submodule "bin/.bin"]
path = base/.bin
url = git@git.desu.ltd:salt/bin
[submodule "desktop-common/.minetest/games/mineclone2"]
path = desktop-common/.minetest/games/mineclone2
url = https://git.minetest.land/Wuzzy/MineClone2
[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

@@ -16,26 +16,3 @@ 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
This stash contains a number of packages for numerous situations. Note that `contrib` is **NOT** a package:
| package | description |
| --- | --- |
| `base` | The base package contains shell and core utility configuration. Other packages do not depend on it; it merely contains basic configuration that I find necessary in every case. |
| `desktop-common` | Common configuration shared across all possible rices. This contains things such as keybindings for applications, Quake configs, Redshift, etc. Configuration files with themes are avoided where possible. |
| `desktop-gruvbox` | My current rice and its accompanying configs. A nice and simple one with Rofi, bspwm, Dunst, Compton, and Polybar. |
| `theme-qt-gruvbox-dark` | A dark mode theme for general use |
| `theme-qt-gruvbox-light` | A light mode for my work user |
| `theme-gruvbox` | A Gruvbox Materia GTK theme and an accompanying Papirus icon theme. |
| `git` | My personal git configuration. Separated from base because sometimes I don't want cockmail on all my commits. |
| `mac` | MacOS-specific configs. Very sparse; I hardly ever have to use one. |
| `ssh` | SSH configuration for my desktop machines. |
Included within are also a handful of management scripts.
| script | description |
| --- | --- |
| `bootleg-stow` | USE AT YOUR OWN RISK. Tries its best to emulate Stow in an environment where it's not available. Should at the very least allow you to install and update these dotfiles without too much headache. |
| `submodule-checkout-masters-and-update.sh` | For every submodule in the repo, checks out its master branch (instead of the exact commit specified in the base repo) and then pulls from upstream. Effectively, this updates any submodules in the repo, such as Vim plugins, themes, etc. |

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=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,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

View File

@@ -1,4 +1,4 @@
#! /bin/sh
#! /bin/bash
#
# .functions
# Functions for interactive shells
@@ -19,6 +19,15 @@ proj() {
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\""
@@ -53,18 +62,3 @@ _proj() {
COMPREPLY=($(compgen -W "$COMPREPLY" "${COMP_WORDS[COMP_CWORD]}"))
return 0
}
# Autocompletion for zsh
compdef _proj proj > /dev/null 2>&1 && \
_proj() {
#! /usr/bin/env zsh
# It's okay, shellcheck
# We zsh now
# shellcheck disable=2039
for dir in "$HOME"/Projects/*; do
temp="$(basename "$dir")"
temp="${reply//[^ a-zA-Z0-9.]/}"
reply+=" $temp"
done
return 0
}

View File

@@ -1,15 +1,13 @@
#!/bin/sh
# Copyright (c) 2017 rehashedsalt/vintagesalt
#
# My shell profile
#
# Copyright (c) 2017-2022 Jacob Babor
# Licensed under the terms of the MIT license
## POSIX NOTICE
# This script, or at least the parts expected to be run by a standard sh
# implementation, should be fully POSIX-compliant. If it is not, open a bug
# report at git.9iron.club/salt/home and I'll take care of it.
#
## SHELLCHECK
# Not finding these sources is none of my concern; they're out of scope
# 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
@@ -28,7 +26,6 @@ _baseshell="$(basename -- "$0")"
for dir in \
"$HOME/.bin" \
"$HOME/.local/bin" \
"$HOME/.firestarter" \
"/usr/local/opt/coreutils/libexec/gnubin" \
"/usr/local/opt/gnu-sed/libexec/gnubin" \
"/usr/local/opt/grep/libexec/gnubin" \
@@ -55,9 +52,27 @@ has() {
command -v "$1" > /dev/null 2>&1
}
# Doot
if ! has doot; then
alias doot="echo Doot doot."
# 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
@@ -82,12 +97,6 @@ if has pip; then
esac
fi
# Set up go, if we have it
if has go; then
export GOPATH="$HOME/.local/go"
[ "${PATH#*$GOPATH}" = "$PATH" ] && export PATH="$PATH:$GOPATH/bin"
fi
# Grab dircolors, if it exists
if has dircolors; then
dircolorsfile="$HOME/.config/dircolors"
@@ -105,34 +114,10 @@ for editor in vim vi nano; do
break
fi
done
alias e='$EDITOR'
# Now for a shitton of aliases
if ! has define; then
if has mate-dictionary; then
alias define='mate-dictionary -n --look-up'
fi
fi
if ! has helpme; then
# https://breanneboland.com/blog/2020/02/28/you-can-put-what-in-dns-txt-records-a-blog-post-for-con-west-2020/
alias helpme='dig +short txt "$(( RANDOM % 50 )).maybethiscould.work"'
fi
if has emerge; then
alias e-depclean='sudo emerge -a --depclean'
alias e-inst='sudo emerge -a --jobs --tree --quiet-build y'
alias e-upgrade='sudo emerge -DNUua --jobs --tree --quiet-build y --with-bdeps=y --keep-going --backtrack=1000 @world'
alias e-newuse='sudo emerge -Uva --jobs --tree --quiet-build y @world'
alias e-search='emerge -s'
alias e-sync='sudo emerge --sync'
if has eclean; then
alias e-cleanup='sudo eclean -d distfiles && sudo eclean -d packages'
fi
fi
if has firestarter and ! has fs; then
alias fs="firestarter"
fi
if has fork; then
alias dup="fork $TERMINAL $PWD"
if has podman and ! has docker; then
alias docker="podman"
fi
if has git; then
# Thanks Bash-it!
@@ -221,19 +206,6 @@ if has git; then
# Show untracked files
alias gu='git ls-files . --exclude-standard --others'
fi
if has nc; then
# I'm not sorry
alias blinkenlights='nc -v towel.blinkenlights.nl 23'
fi
if has ptgdp; then
song() {
if [ -z "$*" ]; then
echo "song: Requires an argument"
return 1
fi
echo "$*" | ptgdp -p
}
fi
if has sed && has find; then
replace() {
if [ $# -ne 2 ]; then
@@ -261,11 +233,6 @@ if has tree; then
alias ts="tree $treeargs -hL 2"
unset treeargs
fi
if has vault; then
alias vlogin="vault login -method=ldap username=$(whoami)"
alias vls="vault list"
alias vr="vault read"
fi
# Aliases for common utilities
if [ "$(uname)" = "Linux" ] || has brew; then
@@ -279,12 +246,18 @@ if [ "$(uname)" = "Linux" ] || has brew; then
else
# Else only assume POSIX/BSD
lsarguments='-F'
alias l="ls -$lsarguments"
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="$?"
@@ -303,12 +276,24 @@ _ps1bash() {
# 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 -s)${r}${fg_red}:${r}${_prefix}"
_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
@@ -364,7 +349,6 @@ case "$_baseshell" in
esac
# Clean up
unset gnubin
unset -v _baseshell
unset -f has

View File

@@ -1,148 +0,0 @@
#! /bin/bash
#
# %FILE%
# Copyright (C) %YEAR% %USER% <%MAIL%>
#
# Distributed under terms of the %LICENSE% license.
#
set -e
# Read-only set-once variables
declare -r _name="$(basename -- "$0")"
# Options
declare -a _config=(
[foo]="bar"
[baz]="bop"
)
declare _optconfigfile="${XDG_CONFIG_HOME:-$HOME/.config}/${_name}.conf"
declare -i _opthelp
declare -i _optverbose
# 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]...
-c [FILE] Load the given file in place of the usual config file
-h Print this help text
-v Print more status messages. Stacks
Copyright (c) %YEAR% %MAIL%
Licensed under the %LICENSE% license
EOF
}
# Main
main() {
# Parse out arguments
while [ -n "$1" ]; do
# Parse out flags
while getopts ":c:hv" opt; do
case $opt in
c)
_optconfigfile="$OPTARG"
;;
h)
_opthelp=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
# Parse out a config file if it exists
if [ -f "$_optconfigfile" ]; then
log "Loading config file" 2
while read line; do
# If the line has an equals sign and isn't a comment
if [ "$line" != "${line#*=}" ] && validateline "$line"; then
local key="${line%=*}"
local value="${line#*=}"
_config[$key]="$value"
log "Setting $key to $value" 2
fi
done < "$_optconfigfile"
else
warn "Could not find configuration file" 2
fi
# Validate critical options
# TODO: That
# Validate core program dependencies
log "Validating dependencies" 2
if ! has basename; then
error "Failed to find program: $_return" 1
fi
# Do the do
# TODO: The do
warn "Nothing to do"
exit 0
}
main "$@"

View File

@@ -1,9 +0,0 @@
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
#
# Copyright © %YEAR% %USER% <%MAIL%>
#
# Distributed under terms of the %LICENSE% license.
%HERE%

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

View File

@@ -75,7 +75,7 @@ checkconflict() {
error "Could not read directory: $1" 2
fi
# Get our list of files
local files="$(find "$1" -type f -o -type l)"
local files="$(find "$1" ! -name "*.swp" -type f -o -type l)"
local directories="$(find "$1" -type d)"
local -a conflict
# Iterate over them

View File

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

View File

@@ -66,8 +66,8 @@ bspc config ignore_ewmh_focus true # Fuck you, Discord
## Looks
# Padding
bspc config border_width 4
bspc config window_gap 6
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
@@ -90,7 +90,7 @@ esac
## Rules
bspc rule -r '*'
case $HOSTNAME in
dsk-cstm-0*)
dsk-ryzen-0*)
# Big boy gets pseudotiled Firefox
bspc rule -a Firefox state=pseudo_tiled rectangle=1920x1080+0+0
;;
@@ -107,6 +107,7 @@ 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

View File

@@ -29,7 +29,7 @@
# 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"
geometry = "600x8-8+64"
corner_radius = 0
# Show how many messages are currently hidden (because of geometry).
@@ -62,7 +62,7 @@
# Defines width in pixels of frame around the notification window.
# Set to 0 to disable.
frame_width = 4
frame_width = 6
# Defines color of the frame around the notification window.
frame_color = "#f2e5bc"
@@ -86,7 +86,7 @@
### Text ###
#font = Monospace 8
font = Roboto 10
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.

View File

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

View File

@@ -32,7 +32,7 @@ bar-width = 50
bar-fill = |
bar-empty = |
bar-indicator =
border-size = 4
border-size = 6
padding = 2
[settings]
@@ -44,18 +44,19 @@ format-background = ${res/colors.bg}
[template/bar]
bottom = false
wm-restack = ${env:PB_WM_RESTACK:i3}
tray-maxsize = 16
tray-maxsize = 24
background = ${res/colors.bg}
foreground = ${res/colors.fg}
border-color = ${res/colors.border}
tray-background = ${res/colors.bg}
height = 40
width = 100%
height = 48
width = 100%:-16
offset-x = 8
padding = 2
border-bottom-size = ${res/config.border-size}
font-0 = "IBM Plex Sans:style=Medium:size=10;2"
font-1 = "Deja Vu Sans Mono:style=Regular:size=10;2"
font-2 = "IBM Plex Sans:style=Bold:size=10;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"
@@ -63,15 +64,18 @@ font-5 = "Font Awesome 5 Brands:style=Regular:size=12;2"
[bar/primary]
monitor = ${env:PB_MONITOR:eDP-1}
inherit = template/bar
tray-position = center
tray-position = right
modules-left = i3 bspwm service-ansible service-backup reboot-required
modules-right = backlight pulse battery | date
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 = wlan-desktop-stats mpd | date
modules-right = xkeyboard pulse wlan-desktop-stats mpd | date
border-top-size = 0
## MODULES
[module/|]
@@ -95,13 +99,16 @@ bar-indicator = ${res/config.bar-indicator}
type = internal/battery
full-at = 100
time-format = %H:%M
interval = 15
interval = 60
format-charging = <ramp-capacity>
format-charging = <ramp-capacity> <label-charging>
format-charging-foreground = ${res/colors.green}
format-discharging = <ramp-capacity>
format-full = <ramp-capacity>
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 = 
@@ -109,6 +116,11 @@ 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>
@@ -134,6 +146,15 @@ 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
@@ -154,7 +175,7 @@ date = %a %b %d
time = %I:%M %p
interval = 5
format = <label>
label = %date% %time%
label = %{T3}%date% %time%%{T-}
[module/fshome]
type = internal/fs
@@ -234,20 +255,21 @@ 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 = 5
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 = 5
interval = 300
exec = "echo "
exec-if = "systemctl is-failed --quiet backup.service"
format-foreground = ${res/colors.red}
@@ -279,8 +301,13 @@ label-connected = U %upspeed% D %downspeed%
[module/xkeyboard]
type = internal/xkeyboard
format = <label-layout>
label-layout = %name%
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

View File

@@ -38,6 +38,7 @@ configuration {
border: 4px 4px 0 0;
height: 60%;
width: 30%;
padding: 0em;
}
#inputbar {
background-color: @background-alt;
@@ -45,17 +46,30 @@ configuration {
}
#case-indicator {
enabled: false;
background-color: @background-alt;
text-color: @foreground-alt;
}
#prompt {
enabled: false;
background-color: @background-alt;
font: "IBM Plex Sans Medium 12";
padding: 0.5em;
}
#textbox-prompt-colon {
enabled: false;
}
#entry {
background-color: @background-alt;
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;
}
@@ -69,11 +83,18 @@ configuration {
#listview {
padding: 1em;
border: none;
}
#scrollbar {
handle-color: @background-alt;
enabled: false;
}
#element {
orientation: vertical;
padding: 1em;
}
#element alternate.normal {
background-color: @background;
}
#element normal active {
text-color: @cyan;
}

View File

@@ -12,13 +12,13 @@ alt + Tab
alt + Escape
pkill -USR1 -x sxhkd
ctrl + alt + l
loginctl lock-session
/usr/lib/x86_64-linux-gnu/libexec/kscreenlocker_greet
## APPLICATION TOGGLES
alt + p
killall pavucontrol-qt || pavucontrol-qt
alt + shift + m
killall picom || ~/.firestarter/firestarter start compositor
killall compton || ~/.firestarter/firestarter start compositor
## HARDWARE CONTROLS
XF86Audio{Raise,Lower}Volume

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"

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

@@ -0,0 +1,75 @@
# vim: set ft=config:
# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
env = GTK_THEME,Adwaita:light
general {
# https://wiki.hyprland.org/Configuring/Variables/
gaps_in = 8
gaps_out = 16
border_size = 4
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.active_border = rgba(458588ff)
col.inactive_border = rgba(ebdbb2cc)
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 6
blur {
enabled = false
size = 3
passes = 1
}
drop_shadow = no
shadow_range = 8
shadow_render_power = 3
col.shadow = rgba(282828ee)
}
animations {
# https://wiki.hyprland.org/Configuring/Animations/
enabled = yes
bezier = snappy, 0.05, 0.9, 0.1, 1.05
animation = windows, 1, 2, snappy
animation = windowsIn, 1, 1, default
animation = windowsOut, 1, 2, default, popin 80%
animation = layers, 1, 1, default
animation = border, 1, 3, default
animation = borderangle, 1, 8, default
animation = fade, 1, 3, default
animation = workspaces, 1, 1.5, snappy
}
dwindle {
# https://wiki.hyprland.org/Configuring/Dwindle-Layout/
pseudotile = yes # Enables pseudotile functionality
preserve_split = yes # Remember splits
force_split = 2 # Force splits to put the child on the right/down
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_status = master
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true
workspace_swipe_invert = true
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_splash_rendering = true
}
xwayland {
force_zero_scaling = true
}

View File

@@ -0,0 +1,83 @@
# vim: set ft=config:
# https://wiki.hyprland.org/Configuring/Binds/
$mainMod = ALT
# Program opening and closing
bind = $mainMod, Return, exec, kitty --single-instance --wait-for-single-instance-window-close
bind = $mainMod, Q, killactive
bind = $mainMod, Space, exec, pgrep wofi || wofi --show drun
#bind = $mainMod, M, exit,
bind = $mainMod, T, pseudo, # dwindle
bind = $mainMod, F, togglefloating,
bind = $mainMod Shift, F, fullscreen
bind = $mainMod, R, togglesplit, # dwindle
# Dunst management
bind = $mainMod Shift, Space, exec, dunstctl close
bind = $mainMod Shift, Return, exec, dunstctl close-all
bind = $mainMod Shift, D, exec, dunstctl history-pop
bind = $mainMod Shift, O, exec, dunstctl context
# Pulse controls
bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume 0 +5%
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume 0 -5%
# Screenshots
bind = $mainMod, O, exec, grim -g "$(slurp -d)" - | wl-copy
# pavucontrol controls
bind = $mainMod, P, exec, pgrep pavucontrol || pavucontrol
bind = $mainMod Shift, P, exec, pkill pavucontrol
# Miscellaneous non-movement hotkeys
bind = CTRL ALT, L, exec, loginctl lock-session
# Change focus
bind = $mainMod, h, movefocus, l
bind = $mainMod, j, movefocus, d
bind = $mainMod, k, movefocus, u
bind = $mainMod, l, movefocus, r
# Move the focused window around
bind = $mainMod Shift, h, movewindow, l
bind = $mainMod Shift, j, movewindow, d
bind = $mainMod Shift, k, movewindow, u
bind = $mainMod Shift, l, movewindow, r
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod, MINUS, workspace, 11
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, MINUS, movetoworkspace, 11
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, Period, workspace, e+1
bind = $mainMod, Comma, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow

View File

@@ -0,0 +1,13 @@
# vim: set ft=config:
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
accel_profile = flat
follow_mouse = 1
numlock_by_default = true
touchpad {
# Also sometimes called "Australian Scrolling"
natural_scroll = no
}
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
}

View File

@@ -0,0 +1,25 @@
# vim: set ft=config:
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# Force all windows to be unable to maximize themselves
# Default rule that ships with hypr
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
# Force pavucontrol to be the center of attention
windowrulev2 = float, center 1, pin, class:^(.*pavucontrol.*)$
windowrulev2 = pin, class:^(.*pavucontrol.*)$
# Zoom is zoom is zoom
windowrulev2 = float, initialTitle:^(zoom_linux_float_video_window)$
windowrulev2 = pin, initialTitle:^(zoom_linux_float_video_window)$
windowrulev2 = float, initialTitle:^(as_toolbar)$
windowrulev2 = pin, initialTitle:^(as_toolbar)$
# Assign specific windows to specific workspaces on launch
windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = workspace 8 silent, class:^(org.mozilla.Thunderbird)$
windowrulev2 = workspace 8 silent, class:^(Slack)$
windowrulev2 = workspace 9 silent, class:^(.*vesktop.*)$
windowrulev2 = workspace 10 silent, class:^(.*spotube.*)$
windowrulev2 = workspace 10 silent, class:^(.*potify.*)$
windowrulev2 = workspace 10 silent, class:^(im.riot.Riot)$

View File

@@ -0,0 +1,4 @@
# vim: set ft=config:
# See https://wiki.hyprland.org/Configuring/Monitors/
# Fall-through rule that sets sane defaults when possible
monitor=,preferred,auto,auto

View File

@@ -0,0 +1,15 @@
# vim: set ft=config:
# Run this at first to fix up some systemd stuff
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# Polkit
exec-once = /usr/libexec/xfce-polkit
# Not technically a daemon but required for wallet
exec-once = /usr/libexec/pam_kwallet_init
# Daemons and stuff
exec-once = nm-applet
exec-once = flatpak run com.nextcloud.desktopclient.nextcloud --background
#exec-once = flatpak run io.kopia.KopiaUI
exec-once = waybar
exec-once = wlsunset -T 5300 -t 3500 -g 1

View File

@@ -0,0 +1,3 @@
# vim: set ft=config:
# Configuration for hypridle is in ~/.config/hypr/hypridle.conf
exec-once = hypridle

View File

@@ -0,0 +1,2 @@
# vim: set ft=config:
exec-once = pgrep -U $USER swww-daemon || { rm /run/user/$UID/swww.socket; swww-daemon --format xrgb; }

View File

@@ -0,0 +1,9 @@
# vim: set ft=config:
# Workspace-specific applications
exec-once = [workspace 8 silent] flatpak run org.keepassxc.KeePassXC
#exec-once = [workspace 8 silent] flatpak run org.mozilla.Thunderbird
#exec-once = [workspace 9 silent] flatpak run dev.vencord.Vesktop
exec-once = [workspace 8 silent] flatpak run com.slack.Slack
exec-once = [workspace 9 silent] obs
#exec-once = [workspace 10 silent] flatpak run im.riot.Riot
exec-once = [workspace 10 silent] flatpak run com.spotify.Client

View File

@@ -0,0 +1,2 @@
# vim: set ft=config:
exec-once = test -x "$HOME/.config/hypr/post.sh" && "$HOME/.config/hypr/post.sh"

View File

@@ -0,0 +1,5 @@
# vim: set ft=config:
debug {
# This enables debug logging for troubleshooting
disable_logs = false
}

View File

@@ -0,0 +1,18 @@
# vim: set ft=config:
# See https://wiki.hyprland.org/Configuring/Monitors/
#monitor=eDP-1,preferred,auto,1.3333
monitor = DP-1,preferred,2560x0,1
monitor = DP-2,preferred,0x0,1
workspace = 1, monitor:DP-1
workspace = 2, monitor:DP-1
workspace = 3, monitor:DP-1
workspace = 4, monitor:DP-1
workspace = 5, monitor:DP-1
workspace = 6, monitor:DP-1
workspace = 7, monitor:DP-1
workspace = 8, monitor:DP-2
workspace = 9, monitor:DP-2
workspace = 10, monitor:DP-2
workspace = 11, monitor:DP-2

View File

@@ -0,0 +1,3 @@
# vim: set ft=config:
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,preferred,auto,1.3333

View File

@@ -0,0 +1,8 @@
# Contrib
Scripts and config files that don't necessarily belong in the defaults.
## Usage
Link to any of these files from within config.d to load them up. Use them
to store machine-specific configs or optional scripts.

View File

@@ -0,0 +1,11 @@
# vim: set ft=config:
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hypridle
general {
lock_cmd = pgrep -u "$USER" hyprlock || hyprlock
unlock_cmd = pkill -xu "$USER" -SIGUSR1 hyprlock
}
listener {
timeout = 900
on-timeout = loginctl lock-session
}

View File

@@ -0,0 +1,3 @@
# vim: set ft=config:
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
source = ~/.config/hypr/config.d/*.conf

View File

@@ -0,0 +1,68 @@
# vim: set ft=config:
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
# General settings
general {
grace = 5
hide_cursor = true
}
# The password input field
input-field {
monitor =
fade_on_empty = true
rounding = 8
outer_color = rgba(50,48,47,0.8)
inner_color = rgba(50,48,47,0.8)
font_color = rgb(235,219,178)
check_color = rgb(250,189,47)
fail_color = rgb(251,73,52)
size = 400, 50
position = 0, -200
}
# The background of the login box
shape {
color = rgba(40,40,40,0.8)
size = 600, 800
position = 0, 0
rounding = 8
}
# A label showing the current time
label {
text = cmd[update:30] echo ""$(date +"%I:%M %p")""
font_size = 48
color = rgb(235,219,178)
position = 0, 250
halign = center
valign = center
}
# A label showing the current date
label {
text = cmd[update:30] echo ""$(date +'%A, %-d %B %Y')""
color = rgb(235,219,178)
position = 0, 150
halign = center
valign = center
}
# The background of the lock screen, behind the box
background {
color = rgba(0,0,0,0.9)
}
# The current user's face
image {
path = ~/.face
border_color = rgba(50,48,47,0.8)
size = 150
position = 0, 0
}
# Name of the current user
label {
text = $USER
color = rgba(235,219,178,0.5)
font_size = 14
position = 0, -100
halign = center
valign = center
}

View File

@@ -0,0 +1,55 @@
# Based on https://github.com/morhetz/gruvbox by morhetz <morhetz@gmail.com>
# Adapted to kitty by wdomitrz <witekdomitrz@gmail.com>
cursor #928374
cursor_text_color background
url_color #83a598
visual_bell_color #8ec07c
bell_border_color #8ec07c
active_border_color #d3869b
inactive_border_color #665c54
foreground #ebdbb2
background #282828
selection_foreground #928374
selection_background #ebdbb2
active_tab_foreground #fbf1c7
active_tab_background #665c54
inactive_tab_foreground #a89984
inactive_tab_background #3c3836
# black (bg3/bg4)
color0 #665c54
color8 #7c6f64
# red
color1 #cc241d
color9 #fb4934
#: green
color2 #98971a
color10 #b8bb26
# yellow
color3 #d79921
color11 #fabd2f
# blue
color4 #458588
color12 #83a598
# purple
color5 #b16286
color13 #d3869b
# aqua
color6 #689d6a
color14 #8ec07c
# white (fg4/fg3)
color7 #a89984
color15 #bdae93

View File

@@ -0,0 +1,44 @@
# vim:fileencoding=utf-8:foldmethod=marker
font_family IBM Plex Mono
font_size 9.0
# url_color #0087bd
# url_style curly
# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
# detect_urls yes
# underline_hyperlinks hover
enable_audio_bell no
focus_follows_mouse yes
confirm_os_window_close 0
background_opacity 0.8
include ~/.config/kitty/gruvbox.conf
# Why the fuck does my terminal need to do this?
update_check_interval 0
# Launch a kitty that can be broadcast to
map f1 launch --allow-remote-control kitty +kitten broadcast --match-tab state:focused
# shell_integration enabled
#: Enable shell integration on supported shells. This enables features
#: such as jumping to previous prompts, browsing the output of the
#: previous command in a pager, etc. on supported shells. Set to
#: disabled to turn off shell integration, completely. It is also
#: possible to disable individual features, set to a space separated
#: list of these values: no-rc, no-cursor, no-title, no-cwd, no-
#: prompt-mark, no-complete, no-sudo. See Shell integration
#: <https://sw.kovidgoyal.net/kitty/shell-integration/> for details.
# term xterm-kitty
term xterm-256color
#: The value of the TERM environment variable to set. Changing this
#: can break many terminal programs, only change it if you know what
#: you are doing, not because you read some advice on "Stack Overflow"
#: to change it. The TERM variable is used by various programs to get
#: information about the capabilities and behavior of the terminal. If
#: you change it, depending on what programs you run, and how
#: different the terminal you are changing it to is, various things
#: from key-presses, to colors, to various advanced features may not
#: work. Changing this option by reloading the config will only affect
#: newly created windows.

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: 0.5em;
}
#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: 0.5em;
border: none;
}
#scrollbar {
handle-color: @background-alt;
enabled: false;
}
#element {
padding: 0.5em;
}
#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,136 @@
[{
"id": "top",
"name": "top",
"layer": "top",
"height": 40,
"margin-top": 16,
"margin-left": 16,
"margin-right": 16,
"modules-left": ["hyprland/workspaces", "hyprland/window", "sway/mode"],
"modules-right": ["tray"],
"hyprland/workspaces": {
"all-outputs": false,
"disable-scroll": true,
"persistent-workspaces": {
"eDP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ],
"DP-1": [ 1, 2, 3, 4, 5, 6, 7 ],
"DP-2": [ 8, 9, 10, 11 ]
}
},
"hyprland/window": {
"separate-outputs": true,
"format": "{}"
},
"tray": {
"icon-size": 16,
"spacing": 10
}
},
{
"id": "bottom",
"name": "bottom",
"layer": "top",
"position": "bottom",
"height": 40,
"margin-bottom": 16,
"margin-left": 16,
"margin-right": 16,
"modules-left": ["gamemode", "custom/flatpak", "custom/backup", "battery", "temperature", "cpu", "memory", "network"],
"modules-center": [],
"modules-right": ["mpris", "pulseaudio", "backlight", "idle_inhibitor", "clock"],
"clock": {
"format": "{:%a %b %d %I:%M %p}",
"tooltip": false
},
"network": {
"interval": 5,
"format": " {bandwidthUpBytes}  {bandwidthDownBytes}",
"format-disconnected": ""
},
"battery": {
"states": {
"good": 100,
"warning": 30,
"critical": 15
},
"format": "{icon} {capacity}%",
"format-charging": "{icon} {capacity}%",
"format-plugged": "{icon} {capacity}%",
"format-icons": ["", "", "", "", ""]
},
"backlight": {
"format": " {percent}%"
},
"idle_inhibitor": {
"format": ""
},
"gamemode": {
"format": "{glyph}",
"glyph": "",
"use-icon": false,
"icon-spacing": 0,
"icon-size": 0
},
"pulseaudio": {
"scroll-step": 5,
"format": "{icon} {volume}%",
"format-muted": "{icon}",
"format-icons": {
"default": ["", "", ""]
},
"scroll-step": 1,
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
},
"cpu": {
"interval": 3,
"format": " {usage}%",
"states": {
"critical": 90,
"warning": 80,
"regular": 50
}
},
"memory": {
"interval": 5,
"format": " {percentage}% <span font-size=\"7pt\">{swapPercentage}%</span>",
"states": {
"critical": 90,
"warning": 80,
"regular": 50
}
},
"temperature": {
"format": " {temperatureC}°",
"critical-threshold": 80
},
"mpris": {
"interval": 1,
"artist-len": 30,
"album-len": 30,
"title-len": 40,
"format": "{player_icon} - {dynamic}",
"ignored-players": [
"firefox"
],
"player-icons": {
"default": "♫"
},
"status-icons": {
"playing": "⏵",
"paused": "⏸",
"stopped": "⏹"
}
},
"custom/flatpak": {
"interval": 180,
"tooltip-format": "{} pending Flatpak updates available",
"format": " {}",
"exec": "flatpak remote-ls --updates --app | wc -l",
"exec-if": "test $(flatpak remote-ls --updates --app | wc -l) -gt 0"
},
"custom/backup": {
"interval": 60,
"format": "",
"exec": "systemctl is-failed backup.service"
}
}]

View File

@@ -0,0 +1,210 @@
/*
* style.css
* Copyright (C) 2021 Vintage Salt
*
* Distributed under terms of the MIT license.
*/
* {
border: none;
border-radius: 0;
font-family: "IBM Plex Sans", "Font Awesome 6 Free", sans-serif;
font-size: 13px;
}
window#waybar {
background: transparent;
}
.modules-left {
background: rgba(235, 219, 178, 0.8);
border-radius: 8px;
}
.modules-right {
background: rgba(235, 219, 178, 0.8);
border-radius: 8px;
}
/* Hypr stuff */
#workspaces {
}
#workspaces button {
/* Any random button */
background: transparent;
color: #7c6f64;
padding: 0 0.9em;
border-radius: 8px;
}
#workspaces button.persistent {
color: rgba(40, 40, 40, 0.8);
}
#workspaces button.empty {
color: rgba(40, 40, 40, 0.2);
}
#workspaces button:hover {
/* A button that is currently being hovered over by the mouse cursor */
/* This comes with free transitions */
box-shadow: inherit;
text-shadow: inherit;
background-color: #928374;
}
#workspaces button.focused {
color: rgba(235, 219, 178, 0.8);
background: #928374;
font-weight: bold;
}
#workspaces button.visible {
color: rgba(235, 219, 178, 0.8);
background: #076678;
font-weight: bold;
}
#workspaces button.active {
color: rgba(235, 219, 178, 0.8);
background: #458588;
font-weight: bold;
}
#workspaces button.urgent {
color: #d79921;
font-weight: bold;
}
/* Window and mode display */
#window {
color: rgba(40, 40, 40, 0.4);
padding: 0 1em;
border-radius: 8px;
}
window#waybar.empty #window {
/* We do this so it properly hides when on an empty workspace */
padding: 0;
}
window#waybar.solo #window {
/* Nothing */
}
window#waybar.floating #window {
/* Workspace contains only floating windows */
color: rgba(235, 219, 178, 0.8);
background: #689d6a;
}
window#waybar.fullscreen #window {
/* Workspace containing a "fullscreen" window (note that this includes fullscreen, 1, which is maximize) */
color: rgba(235, 219, 178, 0.8);
background: #b16286;
}
/* widgets */
#pulseaudio {
padding: 0 1em;
color: #282828;
border-radius: 8px;
}
#pulseaudio.muted {
border-radius: 8px;
background: #cc241d;
color: #ebdbb2;
}
#tray {
padding: 0 1em;
}
#mpris {
padding: 0 1em;
}
#mpris.playing {
color: #b16286;
}
#mpris.paused, #mpris.stopped {
color: rgba(40, 40, 40, 0.2);
}
#network {
padding: 0 1em;
color: rgba(40, 40, 40, 0.2);
}
#network.disconnected {
color: #cc241d;
}
#idle_inhibitor {
padding: 0 1em;
}
#idle_inhibitor.deactivated {
color: rgba(40, 40, 40, 0.2);
}
#idle_inhibitor.activated {
color: #282828;
}
#backlight {
padding: 0 1em;
color: #282828;
}
#gamemode {
padding: 0 1em;
color: rgba(40, 40, 40, 0.2);
}
#gamemode.running {
color: #b8bb26;
}
/* Memory */
#memory {
padding: 0 1em;
color: rgba(40, 40, 40, 0.2);
}
#memory.critical {
color: #cc241d;
}
#memory.warning {
color: #d79921;
}
#memory.regular {
color: #282828;
}
/* CPU */
#cpu {
padding: 0 1em;
color: rgba(40, 40, 40, 0.2);
}
#cpu.critical {
color: #cc241d;
}
#cpu.warning {
color: #d79921;
}
#cpu.regular {
color: #282828;
}
/* Battery */
#battery {
padding: 0 1em;
}
#battery.charging {
color: #b8bb26;
}
#battery.good {
color: rgba(40, 40, 40, 0.2);
}
#battery.discharging.warning {
color: #d79921;
}
#battery.discharging.critical {
color: #cc241d;
}
#clock {
color: #282828;
padding: 0 1em;
}
/* Temperature*/
#temperature {
padding: 0 1em;
color: rgba(40, 40, 40, 0.2);
}
#temperature.critical {
color: #cc241d;
}
/* Custom modules */
#custom-backup {
color: #cc241d;
padding: 0 1em;
}
#custom-flatpak {
color: rgba(40, 40, 40, 0.2);
padding: 0 1em;
}

View File

@@ -0,0 +1,6 @@
# vim: set ft=config:
# wofi(5)
insensitive=true
allow_images=true
no_actions=true
hide_scroll=true

View File

@@ -0,0 +1,57 @@
/* ::root{ */
/* --accent: #5291e2; */
/* --dark: #383C4A; */
/* --light: #7C818C; */
/* --ld: #404552; */
/* --dl: #4B5162 */
/* --white: white; */
/* } */
/* The whole window */
window {
background-color: transparent;
border-radius: 8px;
color: #ebdbb2;
}
/* The outermost box that contains everything */
#outer-box {
border-radius: 8px;
padding: 1em;
background-color: rgba(40,40,40,0.8);
}
/* The box that contains all the search results */
#inner-box {
background: transparent
margin: 5px;
}
/* The search bar */
#input {
margin: 5px;
border-radius: 8px;
border: none;
background-color: #32302f;
color: #ebdbb2;
}
/* The scrollbar */
#scroll {
}
/* The text for every search result entry */
#text {
padding: 5px;
color: #ebdbb2;
}
/* The container for every entry */
#entry {
background-color: transparent;
border: 4px solid transparent;
border-radius: 8px;
}
#entry:selected {
border: 4px solid #83a598;
}

View File

@@ -0,0 +1,83 @@
/**
* @name midnight-gruvbox
* @description A dark, rounded discord theme. Managed by .dotfiles, packed in by stow. Original by refact0r
* @author salt
* @version 1.6.2
* @source https://github.com/refact0r/midnight-discord/blob/master/midnight.theme.css
*/
/* IMPORTANT: make sure to enable dark mode in discord settings for the theme to apply properly!!! */
@import url('https://refact0r.github.io/midnight-discord/midnight.css');
/* customize things here */
:root {
/* font, change to 'gg sans' for default discord font*/
--font: 'IBM Plex Sans';
/* top left corner text */
--corner-text: 'Midnight';
/* color of status indicators and window controls */
--online-indicator: #b8bb26; /* change to #23a55a for default green */
--dnd-indicator: #fb4934; /* change to #f13f43 for default red */
--idle-indicator: #fabd2f; /* change to #f0b232 for default yellow */
--streaming-indicator: #d3869b; /* change to #593695 for default purple */
/* accent colors */
--accent-1: #83a598; /* links */
--accent-2: #83a598; /* general unread/mention elements */
--accent-3: #83a598; /* accent buttons */
--accent-4: #458588; /* accent buttons when hovered */
--accent-5: #458588; /* accent buttons when clicked */
--mention: #3c3836; /* mentions & mention messages */
--mention-hover: #504945; /* mentions & mention messages when hovered */
/* text colors */
--text-0: #ebdbb2; /* text on colored elements */
--text-1: var(--text-2); /* other normally white text */
--text-2: #ebdbb2; /* headings and important text */
--text-3: #d5c4a1; /* normal text */
--text-4: #bdae93; /* icon buttons and channels */
--text-5: #7c6f64; /* muted channels/chats and timestamps */
/* background and dark colors */
--bg-1: #665c54; /* dark buttons when clicked */
--bg-2: #504945; /* dark buttons */
--bg-3: #32302f; /* spacing, secondary elements */
--bg-4: #282828; /* main background color */
--hover: #3c3836; /* channels and buttons when hovered */
--active: #3c3836; /* channels and buttons when clicked or selected */
--message-hover: #1d2021; /* messages when hovered */
/* amount of spacing and padding */
--spacing: 8px;
/* animations */
/* ALL ANIMATIONS CAN BE DISABLED WITH REDUCED MOTION IN DISCORD SETTINGS */
--list-item-transition: 0.2s ease; /* channels/members/settings hover transition */
--unread-bar-transition: 0.2s ease; /* unread bar moving into view transition */
--moon-spin-transition: 0.4s ease; /* moon icon spin */
--icon-spin-transition: 1s ease; /* round icon button spin (settings, emoji, etc.) */
/* corner roundness (border-radius) */
--roundness-xl: 16px; /* roundness of big panel outer corners */
--roundness-l: 14px; /* popout panels */
--roundness-m: 12px; /* smaller panels, images, embeds */
--roundness-s: 8px; /* members, settings inputs */
--roundness-xs: 4px; /* channels, buttons */
--roundness-xxs: 4px; /* searchbar, small elements */
/* direct messages moon icon */
/* change to block to show, none to hide */
--discord-icon: block; /* discord icon */
--moon-icon: none; /* moon icon */
--moon-icon-url: url('https://upload.wikimedia.org/wikipedia/commons/c/c4/Font_Awesome_5_solid_moon.svg'); /* custom icon url */
--moon-icon-size: auto;
/* filter uncolorable elements to fit theme */
/* (just set to none, they're too much work to configure) */
--login-bg-filter: saturate(0.3) hue-rotate(-15deg) brightness(0.4); /* login background artwork */
--green-to-accent-3-filter: hue-rotate(56deg) saturate(1.43); /* add friend page explore icon */
--blurple-to-accent-3-filter: hue-rotate(304deg) saturate(0.84) brightness(1.2); /* add friend page school icon */
}

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"

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

@@ -0,0 +1,180 @@
# -*- conf -*-
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
term=xterm-256color
# login-shell=no
font=IBM Plex Mono:size=9
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# font-size-adjustment=0.5
# line-height=<font metrics>
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary
# workers=<number of logical CPUs>
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is libutempter (Linux)
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ulog (FreeBSD)
[environment]
# name=value
[bell]
# urgent=no
# notify=no
# command=
# command-focused=no
[scrollback]
lines=10000
# multiplier=3.0
# indicator-position=relative
# indicator-format=""
[url]
launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
protocols=http, https, ftp, ftps, file, gemini, gopher
uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
[cursor]
# style=block
style=beam
# color=<inverse foreground/background>
blink=yes
# beam-thickness=1.5
# underline-thickness=<font underline thickness>
[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes
[touch]
# long-press-delay=400
[colors]
alpha=0.8
background=282828
foreground=ebdbb2
regular0=282828
regular1=cc241d
regular2=98971a
regular3=d79921
regular4=458588
regular5=b16286
regular6=689d6a
regular7=a89984
bright0=928374
bright1=fb4934
bright2=b8bb26
bright3=fabd2f
bright4=83a598
bright5=d3869b
bright6=8ec07c
bright7=ebdbb2
## dimmed colors (see foot.ini(5) man page)
# dim0=<not set>
# ...
# dim7=<not-set>
## The remaining 256-color palette
# 16 = <256-color palette #16>
# ...
# 255 = <256-color palette #255>
## Misc colors
# selection-foreground=<inverse foreground/background>
# selection-background=<inverse foreground/background>
# jump-labels=<regular0> <regular3> # black-on-yellow
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
# search-box-no-match=<regular0> <regular1> # black-on-red
# search-box-match=<regular0> <regular3> # black-on-yellow
# urls=<regular3>
[csd]
# preferred=server
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-maximized=no
# double-click-to-maximize=yes
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
# font-increase=Control+plus Control+equal Control+KP_Add
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# show-urls-launch=Control+Shift+o
# show-urls-copy=none
# show-urls-persistent=none
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x
# unicode-input=Control+Shift+u
# noop=none
[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-to-word-boundary=Control+w
# extend-to-next-whitespace=Control+Shift+w
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none
[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t
[text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings]
# selection-override-modifiers=Shift
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-row=BTN_LEFT-3
# vim: ft=dosini

View File

@@ -0,0 +1,83 @@
# vim: set ft=hyprlang:
# Some default env vars.
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORMTHEME,qt5ct # change to qt6ct if you have that
general {
# https://wiki.hyprland.org/Configuring/Variables/
gaps_in = 8
gaps_out = 16
border_size = 4
#col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
col.active_border = rgba(83a598ff)
col.inactive_border = rgba(282828cc)
layout = dwindle
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 6
blur {
enabled = false
size = 3
passes = 1
}
drop_shadow = no
shadow_range = 8
shadow_render_power = 3
col.shadow = rgba(282828ee)
}
animations {
# https://wiki.hyprland.org/Configuring/Animations/
enabled = yes
bezier = snappy, 0.05, 0.9, 0.1, 1.05 # This is apparently kinda an ease-out-back sorta deal
bezier = ease-out-expo, 0.16, 1, 0.30, 1
animation = windows, 1, 2, ease-out-expo
animation = windowsIn, 1, 1, default
animation = windowsOut, 1, 2, default, popin 80%
animation = layers, 1, 1, default
animation = border, 1, 3, default
animation = borderangle, 1, 8, default
animation = fade, 1, 3, default
animation = workspaces, 1, 1.5, ease-out-expo
}
dwindle {
# https://wiki.hyprland.org/Configuring/Dwindle-Layout/
pseudotile = yes # Enables pseudotile functionality
preserve_split = yes # Remember splits
force_split = 2 # Force splits to put the child on the right/down
default_split_ratio = 1.1
}
master {
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
new_status = master
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = true
workspace_swipe_invert = true
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_splash_rendering = true
# if there is a fullscreen or maximized window, decide whether a new tiled
# window opened should replace it, stay behind or disable the
# fullscreen/maximized state.
# 0 - behind, 1 - takes over, 2 - unfullscreen/unmaxize [0/1/2]
new_window_takes_over_fullscreen = 2
vfr = 1
}
xwayland {
# This disables scaling in xwayland apps. I prefer the crispness to blurriness
force_zero_scaling = true
}

View File

@@ -0,0 +1,102 @@
# vim: set ft=hyprlang:
# https://wiki.hyprland.org/Configuring/Binds/
$mainMod = ALT
# Program opening and closing
#bind = $mainMod, Return, exec, kitty --single-instance --wait-for-single-instance-window-close
bind = $mainMod, Return, exec, foot
bind = $mainMod, Q, killactive
bind = $mainMod, Space, exec, pgrep wofi || wofi --show drun
#bind = $mainMod, M, exit,
bind = $mainMod, T, pseudo
bind = $mainMod, F, togglefloating
bind = $mainMod Shift, F, fullscreen
bind = $mainMod, R, togglesplit
bind = $mainMod, G, swapsplit
# Dunst management
bind = $mainMod Shift, Space, exec, dunstctl close
bind = $mainMod Shift, Return, exec, dunstctl close-all
bind = $mainMod Shift, D, exec, dunstctl history-pop
bind = $mainMod Shift, O, exec, dunstctl context
# Pulse controls
bind = , XF86AudioRaiseVolume, exec, pactl set-sink-volume 0 +5%
bind = , XF86AudioLowerVolume, exec, pactl set-sink-volume 0 -5%
# Brightness controls
bind = ,XF86MonBrightnessDown, exec, brightnessctl s 5%-
bind = ,XF86MonBrightnessUp, exec, brightnessctl s +5%
# Screenshots
bind = $mainMod, O, exec, grim -g "$(slurp -d)" - | wl-copy
# pavucontrol controls
bind = $mainMod, P, exec, pgrep pavucontrol || pavucontrol
bind = $mainMod Shift, P, exec, pkill pavucontrol
# Miscellaneous non-movement hotkeys
bind = CTRL ALT, L, exec, loginctl lock-session
# Change focus
bind = $mainMod, h, movefocus, l
bind = $mainMod, j, movefocus, d
bind = $mainMod, k, movefocus, u
bind = $mainMod, l, movefocus, r
# Move the focused window around
bind = $mainMod Shift, h, swapwindow, l
bind = $mainMod Shift, j, swapwindow, d
bind = $mainMod Shift, k, swapwindow, u
bind = $mainMod Shift, l, swapwindow, r
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
bind = $mainMod, MINUS, workspace, 11
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspace, 1
bind = $mainMod SHIFT, 2, movetoworkspace, 2
bind = $mainMod SHIFT, 3, movetoworkspace, 3
bind = $mainMod SHIFT, 4, movetoworkspace, 4
bind = $mainMod SHIFT, 5, movetoworkspace, 5
bind = $mainMod SHIFT, 6, movetoworkspace, 6
bind = $mainMod SHIFT, 7, movetoworkspace, 7
bind = $mainMod SHIFT, 8, movetoworkspace, 8
bind = $mainMod SHIFT, 9, movetoworkspace, 9
bind = $mainMod SHIFT, 0, movetoworkspace, 10
bind = $mainMod SHIFT, MINUS, movetoworkspace, 11
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, Period, workspace, e+1
bind = $mainMod, Comma, workspace, e-1
# Move windows around
bindm = $mainMod, mouse:272, movewindow
# Resize mouse binding and submap
bindm = $mainMod, mouse:273, resizewindow
bind = $mainMod SHIFT, R, submap, resize
submap = resize
$resizeFactor = 50
bind = , l, resizeactive, $resizeFactor 0
bind = , h, resizeactive, -$resizeFactor 0
bind = , k, resizeactive, 0 -$resizeFactor
bind = , j, resizeactive, 0 $resizeFactor
bind = SHIFT, h, moveactive, -$resizeFactor 0
bind = SHIFT, j, moveactive, 0 $resizeFactor
bind = SHIFT, k, moveactive, 0 -$resizeFactor
bind = SHIFT, l, moveactive, $resizeFactor 0
bind = , Return, submap, reset
bind = , Escape, submap, reset
bind = $mainMod SHIFT, R, submap, reset
submap = reset

View File

@@ -0,0 +1,13 @@
# vim: set ft=hyprlang:
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
accel_profile = flat
follow_mouse = 1
numlock_by_default = true
touchpad {
# Also sometimes called "Australian Scrolling"
natural_scroll = no
}
sensitivity = 0 # -1.0 to 1.0, 0 means no modification.
}

View File

@@ -0,0 +1,20 @@
# vim: set ft=hyprlang:
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# Force all windows to be unable to maximize themselves
# Default rule that ships with hypr
windowrulev2 = suppressevent maximize, class:.* # You'll probably like this.
# Force pavucontrol to be the center of attention
windowrulev2 = float, center 1, class:^(.*pavucontrol.*)$
windowrulev2 = pin, class:^(.*pavucontrol.*)$
# Assign specific windows to specific workspaces on launch
windowrulev2 = workspace 2 silent, class:^(steam)$
windowrulev2 = workspace 8 silent, class:^(org.keepassxc.KeePassXC)$
windowrulev2 = workspace 8 silent, class:^(org.mozilla.Thunderbird)$
windowrulev2 = workspace 9 silent, class:^(im.riot.Riot)$
windowrulev2 = workspace 9 silent, class:^(.*vesktop.*)$
windowrulev2 = workspace 10 silent, class:^(.*spotube.*)$
windowrulev2 = workspace 10 silent, class:^(.*potify.*)$
windowrulev2 = workspace 10 silent, class:^(feishin)$

View File

@@ -0,0 +1,4 @@
# vim: set ft=hyprlang:
# See https://wiki.hyprland.org/Configuring/Monitors/
# Fall-through rule that sets sane defaults when possible
monitor=,preferred,auto,auto

View File

@@ -0,0 +1,15 @@
# vim: set ft=hyprlang:
# Run this at first to fix up some systemd stuff
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# Polkit
exec-once = /usr/libexec/xfce-polkit
# Not technically a daemon but required for wallet
exec-once = /usr/libexec/pam_kwallet_init
# Daemons and stuff
exec-once = nm-applet
exec-once = flatpak run com.nextcloud.desktopclient.nextcloud --background
exec-once = flatpak run io.kopia.KopiaUI
exec-once = waybar
exec-once = wlsunset -T 5300 -t 3500 -g 1

View File

@@ -0,0 +1,3 @@
# vim: set ft=hyprlang:
# Configuration for hypridle is in ~/.config/hypr/hypridle.conf
exec-once = hypridle

View File

@@ -0,0 +1,2 @@
# vim: set ft=hyprlang:
exec-once = pgrep -U $USER swww-daemon || { rm /run/user/$UID/swww-wayland-1.sock; swww-daemon --format xrgb; }

View File

@@ -0,0 +1,9 @@
# vim: set ft=hyprlang:
# Workspace-specific applications
exec-once = [workspace 2 silent] flatpak run com.valvesoftware.Steam -silent
exec-once = [workspace 8 silent] flatpak run org.keepassxc.KeePassXC
exec-once = [workspace 8 silent] flatpak run org.mozilla.Thunderbird
exec-once = [workspace 9 silent] flatpak run im.riot.Riot
exec-once = [workspace 9 silent] flatpak run dev.vencord.Vesktop
#exec-once = [workspace 10 silent] flatpak run com.spotify.Client
exec-once = [workspace 10 silent] ~/Programs/feishin

View File

@@ -0,0 +1,2 @@
# vim: set ft=hyprlang:
exec-once = test -x "$HOME/.config/hypr/post.sh" && "$HOME/.config/hypr/post.sh"

View File

@@ -0,0 +1,5 @@
# vim: set ft=hyprlang:
debug {
# This enables debug logging for troubleshooting
disable_logs = false
}

View File

@@ -0,0 +1,17 @@
# vim: set ft=hyprlang:
# https://github.com/hyprwm/hyprland-plugins/tree/main/hyprexpo
bind = $mainMod, grave, hyprexpo:expo, toggle
plugin {
hyprexpo {
columns = 3
gap_size = 8
bg_col = rgb(282828)
workspace_method = first 1
enable_gesture = true
gesture_fingers = 3
gesture_distance = 300
gesture_positive = true # positive=swipe down, negative=swipe up
}
}

View File

@@ -0,0 +1,18 @@
# vim: set ft=hyprlang:
# See https://wiki.hyprland.org/Configuring/Monitors/
#monitor=eDP-1,preferred,auto,1.3333
monitor = DP-1,preferred,2560x0,1
monitor = DP-2,preferred,0x0,1
workspace = 1, monitor:DP-1
workspace = 2, monitor:DP-1
workspace = 3, monitor:DP-1
workspace = 4, monitor:DP-1
workspace = 5, monitor:DP-1
workspace = 6, monitor:DP-1
workspace = 7, monitor:DP-1
workspace = 8, monitor:DP-2
workspace = 9, monitor:DP-2
workspace = 10, monitor:DP-2
workspace = 11, monitor:DP-2

View File

@@ -0,0 +1,3 @@
# vim: set ft=hyprlang:
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,preferred,auto,1.3333

View File

@@ -0,0 +1,3 @@
# vim: set ft=hyprlang:
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=eDP-1,preferred,auto,1.00

View File

@@ -0,0 +1,8 @@
# Contrib
Scripts and config files that don't necessarily belong in the defaults.
## Usage
Link to any of these files from within config.d to load them up. Use them
to store machine-specific configs or optional scripts.

View File

@@ -0,0 +1,13 @@
# vim: set ft=hyprlang:
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hypridle
general {
lock_cmd = pgrep -u "$USER" hyprlock || hyprlock
unlock_cmd = pkill -xu "$USER" -SIGUSR1 hyprlock
before_sleep_cmd = loginctl lock-session
}
listener {
timeout = 900
on-timeout = loginctl lock-session
}

View File

@@ -0,0 +1,3 @@
# vim: set ft=hyprlang:
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
source = ~/.config/hypr/config.d/*.conf

View File

@@ -0,0 +1,68 @@
# vim: set ft=hyprlang:
# for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
# General settings
general {
grace = 5
hide_cursor = true
}
# The password input field
input-field {
monitor =
fade_on_empty = true
rounding = 8
outer_color = rgba(50,48,47,0.8)
inner_color = rgba(50,48,47,0.8)
font_color = rgb(235,219,178)
check_color = rgb(250,189,47)
fail_color = rgb(251,73,52)
size = 400, 50
position = 0, -200
}
# The background of the login box
shape {
color = rgba(40,40,40,0.8)
size = 600, 800
position = 0, 0
rounding = 8
}
# A label showing the current time
label {
text = cmd[update:30] echo ""$(date +"%I:%M %p")""
font_size = 48
color = rgb(235,219,178)
position = 0, 250
halign = center
valign = center
}
# A label showing the current date
label {
text = cmd[update:30] echo ""$(date +'%A, %-d %B %Y')""
color = rgb(235,219,178)
position = 0, 150
halign = center
valign = center
}
# The background of the lock screen, behind the box
background {
color = rgba(0,0,0,0.9)
}
# The current user's face
image {
path = ~/.face
border_color = rgba(50,48,47,0.8)
size = 150
position = 0, 0
}
# Name of the current user
label {
text = $USER
color = rgba(235,219,178,0.5)
font_size = 14
position = 0, -100
halign = center
valign = center
}

View File

@@ -0,0 +1,55 @@
# Based on https://github.com/morhetz/gruvbox by morhetz <morhetz@gmail.com>
# Adapted to kitty by wdomitrz <witekdomitrz@gmail.com>
cursor #928374
cursor_text_color background
url_color #83a598
visual_bell_color #8ec07c
bell_border_color #8ec07c
active_border_color #d3869b
inactive_border_color #665c54
foreground #ebdbb2
background #282828
selection_foreground #928374
selection_background #ebdbb2
active_tab_foreground #fbf1c7
active_tab_background #665c54
inactive_tab_foreground #a89984
inactive_tab_background #3c3836
# black (bg3/bg4)
color0 #665c54
color8 #7c6f64
# red
color1 #cc241d
color9 #fb4934
#: green
color2 #98971a
color10 #b8bb26
# yellow
color3 #d79921
color11 #fabd2f
# blue
color4 #458588
color12 #83a598
# purple
color5 #b16286
color13 #d3869b
# aqua
color6 #689d6a
color14 #8ec07c
# white (fg4/fg3)
color7 #a89984
color15 #bdae93

View File

@@ -0,0 +1,40 @@
# vim:fileencoding=utf-8:foldmethod=marker
font_family IBM Plex Mono
font_size 9.0
# url_color #0087bd
# url_style curly
# url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
# detect_urls yes
# underline_hyperlinks hover
enable_audio_bell no
confirm_os_window_close 0
background_opacity 0.8
include ~/.config/kitty/gruvbox.conf
# Why the fuck does my terminal need to do this?
update_check_interval 0
# shell_integration enabled
#: Enable shell integration on supported shells. This enables features
#: such as jumping to previous prompts, browsing the output of the
#: previous command in a pager, etc. on supported shells. Set to
#: disabled to turn off shell integration, completely. It is also
#: possible to disable individual features, set to a space separated
#: list of these values: no-rc, no-cursor, no-title, no-cwd, no-
#: prompt-mark, no-complete, no-sudo. See Shell integration
#: <https://sw.kovidgoyal.net/kitty/shell-integration/> for details.
# term xterm-kitty
term xterm-256color
#: The value of the TERM environment variable to set. Changing this
#: can break many terminal programs, only change it if you know what
#: you are doing, not because you read some advice on "Stack Overflow"
#: to change it. The TERM variable is used by various programs to get
#: information about the capabilities and behavior of the terminal. If
#: you change it, depending on what programs you run, and how
#: different the terminal you are changing it to is, various things
#: from key-presses, to colors, to various advanced features may not
#: work. Changing this option by reloading the config will only affect
#: newly created windows.

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: 0.5em;
}
#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: 0.5em;
border: none;
}
#scrollbar {
handle-color: @background-alt;
enabled: false;
}
#element {
padding: 0.5em;
}
#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,147 @@
[{
"id": "top",
"name": "top",
"layer": "top",
"height": 40,
"margin-top": 16,
"margin-left": 16,
"margin-right": 16,
"modules-left": ["hyprland/workspaces", "hyprland/window", "hyprland/submap", "sway/mode"],
"modules-right": ["tray"],
"hyprland/workspaces": {
"all-outputs": false,
"disable-scroll": true,
"persistent-workspaces": {
"eDP-1": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ],
"DP-1": [ 1, 2, 3, 4, 5, 6, 7 ],
"DP-2": [ 8, 9, 10, 11 ]
}
},
"hyprland/window": {
"separate-outputs": true,
"format": "{}"
},
"hyprland/submap": {
"on-click": "hyprctl dispatch submap reset"
},
"tray": {
"icon-size": 16,
"spacing": 10
}
},
{
"id": "bottom",
"name": "bottom",
"layer": "top",
"position": "bottom",
"height": 40,
"margin-bottom": 16,
"margin-left": 16,
"margin-right": 16,
"modules-left": ["gamemode", "custom/flatpak", "custom/backup", "custom/rpm-ostree-staged", "battery", "temperature", "cpu", "memory", "network"],
"modules-center": [],
"modules-right": ["mpris", "pulseaudio", "backlight", "idle_inhibitor", "clock"],
"clock": {
"format": "{:%a %b %d %I:%M %p}",
"tooltip": false
},
"network": {
"interval": 5,
"format": " {bandwidthUpBytes}  {bandwidthDownBytes}",
"format-disconnected": ""
},
"battery": {
"states": {
"good": 100,
"warning": 30,
"critical": 15
},
"interval": 3,
"format": "{icon} {capacity}%",
"format-charging": " {capacity}%",
"format-plugged": "{icon} {capacity}%",
"format-icons": ["", "", "", "", ""]
},
"backlight": {
"format": " {percent}%"
},
"idle_inhibitor": {
"format": ""
},
"gamemode": {
"format": "{glyph}",
"glyph": "",
"use-icon": false,
"icon-spacing": 0,
"icon-size": 0
},
"pulseaudio": {
"scroll-step": 5,
"format": "{icon} {volume}%",
"format-muted": "{icon}",
"format-icons": {
"default": ["", "", ""]
},
"scroll-step": 1,
"on-click": "pactl set-sink-mute @DEFAULT_SINK@ toggle"
},
"cpu": {
"interval": 3,
"format": " {usage}%",
"states": {
"critical": 90,
"warning": 80,
"regular": 50
}
},
"memory": {
"interval": 5,
"format": " {percentage}% <span font-size=\"7pt\">{swapPercentage}%</span>",
"states": {
"critical": 90,
"warning": 80,
"regular": 50
}
},
"temperature": {
"format": " {temperatureC}°",
"critical-threshold": 80
},
"mpris": {
"interval": 1,
"artist-len": 30,
"album-len": 30,
"title-len": 40,
"format": "{player_icon} - {dynamic}",
"ignored-players": [
"firefox"
],
"player-icons": {
"default": "♫"
},
"status-icons": {
"playing": "⏵",
"paused": "⏸",
"stopped": "⏹"
}
},
"custom/flatpak": {
"interval": 180,
"tooltip-format": "{} pending Flatpak updates available",
"format": " {}",
"exec": "flatpak remote-ls --updates --app | wc -l",
"exec-if": "test $(flatpak remote-ls --updates --app | wc -l) -gt 0"
},
"custom/backup": {
"interval": 60,
"format": "",
"tooltip-format": "The last backup job failed -- investigate backup.service for more details",
"exec": "systemctl is-failed backup.service"
},
"custom/rpm-ostree-staged": {
"interval": 60,
"format": "",
"tooltip-format": "An rpm-ostree deployment is pending and will be applied upon the next reboot",
"exec": "rpm-ostree status --json | jq -e '.deployments[0].staged'"
}
}]

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