Commit Graph

289 Commits

Author SHA1 Message Date
Donovan Glover
bb6d0afc93
misc: Make exa man pages accessible
Even though it's possible to guarantee that a certain package is used,
it's still necessary to include packages in the $PATH in order to have
access to the man pages for them, among other things.
2023-06-12 18:40:06 -04:00
Donovan Glover
91fff9d285
hyprland: Less blur 2023-06-12 18:39:16 -04:00
Donovan Glover
dace88bc76
Move more dev stuff to neovim 2023-06-12 18:34:41 -04:00
Donovan Glover
4cd995138d
hyprland: Don't inherit fullscreen 2023-06-12 17:35:57 -04:00
Donovan Glover
44057b2579
meta: Move cli tools to fish module
This results in a consistent environment when using any given shell.
Note that adding a package to $PATH instead of just referencing it where
it's needed is useful since otherwise the man pages are inaccessible.
2023-06-12 17:00:26 -04:00
Donovan Glover
f5d7fba157
meta: Move dev tools to neovim module
This fixes some neovim plugins throwing errors due to missing things
such as language servers.

Note that although it *would* be possible to abstract this functionality
into a variety of imports, options, or other abstractions, including
everything at once should reduce complexity since I am not interested in
maintaining different states of configuration. In other words, either
everything works, or something doesn't work and then everything works.
2023-06-12 16:54:12 -04:00
Donovan Glover
610cc8acf0
starship: Disable container module
The container module has been broken for a while and doesn't show
relevant container names.

See: https://github.com/starship/starship/issues/3592
2023-06-12 15:07:52 -04:00
Donovan Glover
9692307bd9
nix: Simplify 2023-06-12 13:40:56 -04:00
Donovan Glover
883c4780da
nix(ncmpcpp): Compact keybinds
Now possible since nixpkgs-fmt is used instead of alejandra.
2023-06-12 10:29:25 -04:00
Donovan Glover
5e65df256a
meta: Add treefmt 2023-06-12 03:48:15 -04:00
Donovan Glover
797c0e8ec4
neovim: Add fcitx-vim
This plugin enables smooth integration between fcitx5 and neovim. In
order words, you no longer have to manually change input methods when
switching between normal mode and insert mode.
2023-06-12 03:12:48 -04:00
Donovan Glover
41f23b165c
nix(joshuto): Fix typo 2023-06-12 03:12:11 -04:00
Donovan Glover
4e2292ebe6
joshuto(icons): Remove unused directory names 2023-06-12 03:11:40 -04:00
Donovan Glover
1deb12331d
nix: Syntax highlight more strings 2023-06-11 15:37:06 -04:00
Donovan Glover
f7f8f56119
nix(joshuto): Inline toml config
This lets us take advantage of nix strings while having the entire
config in a single portable file.

Note that someone already wrote a home manager module for joshuto, which
should get merged soon.

See: https://github.com/nix-community/home-manager/pull/4004
2023-06-11 14:51:50 -04:00
Donovan Glover
759e4b6d72
hyprland: Don't use groups
I haven't used groups in a while and find things simpler that way.
2023-06-11 14:32:32 -04:00
Donovan Glover
13bde07ee7
hyprland: Remove tags script
Moving windows one by one guarantees their order, which is something
this script was unable to achieve.
2023-06-11 14:30:39 -04:00
Donovan Glover
d06d47f76a
nix: Simplify 2023-06-11 09:55:44 -04:00
Donovan Glover
43a07cc8d9
treewide: Switch from alejandra to nixpkgs-fmt
Neither nixfmt nor alejandra support the "standard" way to syntax
highlight multi-line strings in Nix, so nixpkgs-fmt is the only viable
solution.
2023-06-11 09:37:27 -04:00
Donovan Glover
09f2ce62de
mime-apps: Add default browser 2023-06-11 09:25:36 -04:00
Donovan Glover
5e1b179f4c
hyprland: Fix fps drop after inactivity
This fixes an issue where Hyprland would drop from 60fps to 45fps after
being idle for some time, often 1 minute and 30 seconds. This was
problematic for viewing content while idle at 60fps with XWayland in
windowed fullscreen.

See: https://github.com/hyprwm/Hyprland/issues/2484
2023-06-11 06:21:27 -04:00
Donovan Glover
421b77a3db
nix(hyprland): Add syntax highlighting 2023-06-11 06:14:02 -04:00
Donovan Glover
19661bd0bf
waybar: Decrease active workspace background 2023-06-10 20:59:34 -04:00
Donovan Glover
b4cde71c3b
waybar: Add border-bottom to workspace buttons 2023-06-10 20:59:18 -04:00
Donovan Glover
50e317fc22
nix: Formatting 2023-06-10 20:58:45 -04:00
Donovan Glover
31ad806ce7
nix: Add syntax highlighting to strings
Note that alejandra currently does not handle these comments properly.

See: https://github.com/kamadorueda/alejandra/issues/366
2023-06-10 20:13:41 -04:00
Donovan Glover
e42bfc091a
fish: Perform local tests by default 2023-06-10 20:07:55 -04:00
Donovan Glover
53685b9e5e
neovim: Add vim-nix-rummik
This change enables syntax highlighting of Nix strings with comments.
2023-06-10 20:06:36 -04:00
Donovan Glover
73282e699b
modules: Add waycorner 2023-06-10 19:07:55 -04:00
Donovan Glover
6c880d65a5
neovim: Make startify script always work
One of the beauties of Nix is that you don't have to depend on what is
available in a user's $PATH.
2023-06-10 10:17:43 -04:00
Donovan Glover
8251867144
librewolf: Highlight all by default 2023-06-10 08:15:33 -04:00
Donovan Glover
e037c54561
fish: Replace tput reset with tput clear
This should fix an issue where colors would previously get changed after
clearing the terminal.
2023-06-09 21:50:38 -04:00
Donovan Glover
ce289bb112
hyprland: Stack by default
This should keep focus on the first window open per workspace, which
should help compartmentalize workspaces based on function.
2023-06-09 21:26:48 -04:00
Donovan Glover
38188f4e19
qutebrowser: Improve accept_language formatting 2023-06-09 21:25:46 -04:00
Donovan Glover
d6fe14b803
hyprland: Add gaps keybind
Useful when you want to use gaps.
2023-06-09 21:18:35 -04:00
Donovan Glover
7654520135
modules: Add mime-apps 2023-06-09 16:21:52 -04:00
Donovan Glover
1ab27e7fe7
variables: Add defaultBrowser 2023-06-09 16:12:41 -04:00
Donovan Glover
9e5db2273b
fcitx5-mozc: Use separate files for config 2023-06-09 12:34:20 -04:00
Donovan Glover
20b1d42701
neovim: Use vim-crystal from nixpkgs/unstable 2023-06-09 10:39:07 -04:00
Donovan Glover
f350e711eb
neovim: Add toggleterm-nvim 2023-06-09 10:35:05 -04:00
Donovan Glover
ac35390c59
neovim: Make lualine-nvim translucent 2023-06-09 10:34:42 -04:00
Donovan Glover
6a53d7f5eb
neovim: Make it easier to exit terminal
Note that <Esc> cannot be used for the keybind here since other plugins
like fzf-vim rely on using a terminal window that has its own escape
binding.
2023-06-09 09:56:03 -04:00
Donovan Glover
9f78256c4c
neovim: Add bufdelete-nvim
Used to delete buffers without closing the current window and only
showing nvim-tree.
2023-06-09 09:54:39 -04:00
Donovan Glover
176f59f3bd
meta: Replace rofi package with overlay
This significantly reduces the complexity of maintaining a more recent
version of rofi-wayland.
2023-06-09 08:12:29 -04:00
Donovan Glover
250222c191
nixos-rebuild: Use verbose output 2023-06-08 20:57:50 -04:00
Donovan Glover
578190d486
neovim: Simplify cd command
augroup shouldn't be needed since this command is only ran once anyway.
2023-06-08 20:54:22 -04:00
Donovan Glover
5552b5c743
neovim: cd to git directory if it exists
This prevents an issue where it was previously possible to open files in
vim without the current directory being the project root.
2023-06-08 20:51:08 -04:00
Donovan Glover
f4db117bc3
neovim(vim-startify): Fix random quotes 2023-06-08 20:12:07 -04:00
Donovan Glover
d3e2457a89
tests: Use verbose output 2023-06-08 19:18:04 -04:00
Donovan Glover
9d4307c8a6
joshuto: Add icon support 2023-06-08 19:17:28 -04:00
Donovan Glover
3ad31d2df3
nix: Format with alejandra 2023-06-08 17:28:09 -04:00
Donovan Glover
b94c99d67a
nix: Sort imports alphabetically 2023-06-08 17:26:23 -04:00
Donovan Glover
47b5ac0d7d
nix: Remove logic from modules/default.nix
For simplicity, the first-level default.nix should be used to import all
the other modules.
2023-06-08 17:23:22 -04:00
Donovan Glover
d137d3342c
meta: Add tests
Tests help guarantee that I don't forget to do something that I should
have done, such as importing a certain nix module.
2023-06-08 17:15:58 -04:00
Donovan Glover
ac58a29d86
neovim: Add crystalline 2023-06-08 17:02:50 -04:00
Donovan Glover
f86dafa900
neovim: Use vim-crystal from nixpkgs/master
Nix flakes makes it easy to mix and match packages from any git
repository, which includes being able to use multiple nixpkgs branches.
2023-06-08 16:51:57 -04:00
Donovan Glover
a5941a1701
meta: Use crystal-flake for crystal development
The current crystal binary in nixpkgs complains about not finding pcre
when you try to compile anything with it, so crystal-flake is necessary
to have a working crystal environment under NixOS.

crystal-flake additionally packages crystalline, which is nice since no
one has been able to successfully create a pull request for nixpkgs yet.

Reference: https://github.com/NixOS/nixpkgs/issues/129002
2023-06-08 15:13:46 -04:00
Donovan Glover
db06c3ac02
joshuto: Add remaining config files
Note that the theme file is necessary to avoid the theme changing in
certain situations. The keymap config is the same as the default, except
with the addition of "o", which is used to select files (or a directory)
when using joshuto as a file chooser.
2023-06-08 13:43:52 -04:00
Donovan Glover
62521c914d
packages: Remove nwg-dock-hyprland
There is an open pull request for nwg-dock-hyprland, so it'll be
possible to use this package directly from nixpkgs/nixos-unstable soon.
2023-06-08 12:29:45 -04:00
Donovan Glover
5a3538a8ce
qutebrowser: Nixify fileselect 2023-06-08 11:59:38 -04:00
Donovan Glover
3950a0418a
qutebrowser: Use joshuto as the file chooser
This works when combined with `quit --output-selected-files`.
2023-06-08 11:56:24 -04:00
Donovan Glover
7053a79a07
hyprland: Make thunar translucent 2023-06-07 16:26:39 -04:00
Donovan Glover
27d82bfd81
hyprland: Toggle dim_inactive with <super>i 2023-06-07 16:26:18 -04:00
Donovan Glover
25c9378c38
hyprland-autoname-workspaces: Fix typo 2023-06-07 15:58:18 -04:00
Donovan Glover
2045b05b79
hyprland: Increase blur passes
When blur is enabled, it should look like things are actually blurred.
This has the advantage of making translucent windows work better when
the opacity is set by hyprland.
2023-06-07 13:52:16 -04:00
Donovan Glover
a3ffaf73a7
waybar: Fix rofi click focus
Also adds an option to simply open a new empty workspace.
2023-06-07 12:31:26 -04:00
Donovan Glover
77e16590eb
hyprland: Don't blur kitty window by default 2023-06-07 07:52:20 -04:00
Donovan Glover
f2f5560f63
neovim: Add csv-vim 2023-06-06 22:15:33 -04:00
Donovan Glover
3a9fe397fc
joshuto: Preview lock files 2023-06-06 18:46:12 -04:00
Donovan Glover
d0c7ad0eee
neovim: Add back nvim-scrollbar
Looks like the issue where the scrollbar was hiding text behind it has
been fixed.
2023-06-06 17:09:43 -04:00
Donovan Glover
c4636b4b05
neovim: Swap tree toggle with window switch
This makes it easier to press enter after switching to the tree window.
2023-06-06 14:04:56 -04:00
Donovan Glover
6d39ed2980
neovim: Add vim-startify 2023-06-06 12:24:49 -04:00
Donovan Glover
486178b27f
Revert "neovim: Focus tree when empty buffer"
This actually causes QuitPre to not close neovim since the tree is
closed first when quitting while the tree is focused. For simplicity,
the tree should always be unfocused to avoid ambiguity.
2023-06-06 10:52:39 -04:00
Donovan Glover
4d9a6b6877
variables: Add username 2023-06-06 10:50:42 -04:00
Donovan Glover
b5ccd2e18b
fish: Add n abbreviation for neovim 2023-06-06 10:37:06 -04:00
Donovan Glover
9a9e3be260
fish: Use variables for vm abbreviation
This prevents things from breaking if we change the hostname at a later
date.
2023-06-06 10:36:17 -04:00
Donovan Glover
a326873c6a
fish: Add abbreviation for nixos-rebuild switch 2023-06-06 10:33:51 -04:00
Donovan Glover
f6ef515f80
fish: Add abbreviation for nixos-rebuild build-vm 2023-06-06 10:32:32 -04:00
Donovan Glover
a69a38d287
fish: Use lowercase t for tree 2023-06-06 10:17:06 -04:00
Donovan Glover
2fcffe0a67
fish: Add git restore abbreviations 2023-06-06 10:03:09 -04:00
Donovan Glover
9ec36d2bc4
fish: Use smart-case for ripgrep 2023-06-06 10:00:04 -04:00
Donovan Glover
c59387bb1f
neovim: Close tree with QuitPre
This fixes an issue where neovim would automatically close when opening
it with a directory.
2023-06-06 07:50:37 -04:00
Donovan Glover
02dd4540e5
neovim: Focus tree when empty buffer 2023-06-06 07:40:16 -04:00
Donovan Glover
cf6064e500
neovim: Toggle tree with <leader>a
To switch between the tree and the file being edited, use <leader>;
2023-06-06 07:27:32 -04:00
Donovan Glover
f0867c039e
neovim: Open tree by default 2023-06-06 07:27:04 -04:00
Donovan Glover
c588b3a0d8
neovim: Close tree if only buffer 2023-06-06 07:18:59 -04:00
Donovan Glover
fc8b241f6e
packages: Use waybar from nixpkgs 2023-06-06 04:44:30 -04:00
Donovan Glover
7e38c259fa
meta: Replace joshuto package with overlay
This actually took *forever*, but now that I know how to write nixpkgs
overlays, any future ones I write should be relatively straight-forward.
2023-06-05 23:07:36 -04:00
Donovan Glover
3119b789f8
nix: Format with alejandra
Alejandra is written in Rust, has more tests than nixfmt, and handles
non-trivial code examples in Nix better.
2023-06-05 20:50:10 -04:00
Donovan Glover
b9f22a6ab0
kitty: Revert cell height increase
Unfortunately (or fortunately), every line matters when reading and
writing software. Because of this, increasing the cell height results in
more negative consequences than positive.
2023-06-05 19:16:40 -04:00
Donovan Glover
79adca57ef
packages: Add hyprland-autorename-workspaces
Note that the behavior of 1.0.0 is different than older versions,
however it doesn't appear to randomly stop working like before.
2023-06-05 14:57:04 -04:00
Donovan Glover
57856917aa
nix: Move desktop modules to modules
This concludes the unification of modules. Future work could include
combining modules that are unlikely to be used separately.
2023-06-05 12:52:32 -04:00
Donovan Glover
343076f942
meta: Move terminal files to modules
Since all of these files do roughly the same thing (that is, configure
the system in a specific way that a separate file seems necessary), this
should reduce the overall complexity of the project tree.
2023-06-05 11:44:37 -04:00
Donovan Glover
1ad4e2d4af
meta: Rename applications to modules
This is my attempt at putting all modules in one directory to avoid
having to remember whether a module was a part of applications/,
desktop/, or terminal/.
2023-06-05 11:37:06 -04:00
Donovan Glover
e20be890d0
Remove distinction between home-manager files 2023-05-18 11:46:41 -04:00
Donovan Glover
3d8e6f356e
Merge fish module 2023-05-18 09:49:56 -04:00
Donovan Glover
343e0cf6e0
Use separate directories for all modules 2023-05-17 16:57:33 -04:00
Donovan Glover
bcaaea97d2
Remove unneeded home-manager options 2023-05-17 16:08:28 -04:00
Donovan Glover
e09febf522
Add user module 2023-05-17 15:58:08 -04:00
Donovan Glover
afc98ce47e
Remove configuration.nix
Not needed anymore since we know how to use nix modules.
2023-05-17 12:50:55 -04:00
Donovan Glover
2966ab79d6
Add module for piper 2023-05-17 11:51:52 -04:00
Donovan Glover
a2d6373232
Make home.nix a proper module 2023-05-17 11:51:12 -04:00
Donovan Glover
4012f0a381
nix: Modularize 2023-05-17 10:17:42 -04:00
Donovan Glover
4a7b603536
nix: Continue modularization 2023-05-17 10:02:36 -04:00
Donovan Glover
d5db1b513e
Make srb2 a module
This makes it easier to add and remove srb2 from machines by simply
importing its module.
2023-05-16 21:23:13 -04:00
Donovan Glover
4f18602527
Add osu module
Note that osu! is currently unfree since it depends on the bass audio
library.
2023-05-16 21:16:47 -04:00
Donovan Glover
47da22c951
modules: Add tlp
Note that this may be better as a host-specific module.
2023-05-16 17:54:20 -04:00
Donovan Glover
a9703aad9a
Continue moving fish config to fish module 2023-05-16 17:18:48 -04:00
Donovan Glover
8c027300e6
Modularize htop and dual-function-keys 2023-05-16 17:18:06 -04:00
Donovan Glover
19dda06920
Abstract stylix and fonts into modules 2023-05-16 14:52:59 -04:00
Donovan Glover
a17ba29926
Abstract starship and fish into separate modules
This should make things easier to reason about and more modular in
general.
2023-05-16 12:33:53 -04:00
Donovan Glover
9e11cb4278
Simplify modules to home.nix
I *may* abstract this in the future, but for now I have no reason to.
2023-05-11 19:14:59 -04:00
Donovan Glover
341d3aeae5
Remove rofi
This is an experiment to see if I prefer launching everything from the
terminal to get a more tty-like feel.
2023-05-11 18:53:43 -04:00
Donovan Glover
317c7b5dc6
fish: Fix export syntax 2023-05-11 17:48:01 -04:00
Donovan Glover
0038165390
Nixify fish config
Note that the home manager module isn't used here since the resulting
config.fish made fish noticeably slower on startup.
2023-05-11 17:19:21 -04:00
Donovan Glover
7f4eac5446
Migrate remaining neovim config to nix 2023-05-11 16:30:12 -04:00
Donovan Glover
c45a96764f
nix: Continue nixification 2023-05-11 12:56:13 -04:00
Donovan Glover
5322fc02b8
nix: Nixify more dotfiles 2023-05-11 07:30:58 -04:00
Donovan Glover
0d0c00f1d9
nix: Nixify feh
Although it would be nice to use a Wayland image viewer, currently all
of them (that I am aware of) suffer from anti-aliasing issues not present
in feh.
2023-05-11 00:46:26 -04:00
Donovan Glover
ac3769d21c
nix: Nixify dunst 2023-05-11 00:29:03 -04:00
Donovan Glover
1128ee65fd
wip: Neoify vim config
Removing old and outdated stuff that is no longer relevant or doesn't
apply to neovim specifically.
2023-05-10 23:31:01 -04:00
Donovan Glover
10908e340b
feat: Add xdg-user-dirs support 2023-05-10 14:37:42 -04:00
Donovan Glover
5230741e65
feat: Add mpd/ncmpcpp 2023-05-10 13:51:21 -04:00
Donovan Glover
cd32ad2e27
feat: Add gtk config 2023-05-10 13:51:05 -04:00
Donovan Glover
e05914ae18
feat: Add tig config 2023-05-10 13:49:47 -04:00
Donovan Glover
176a8b6597
feat: Add dunst support 2023-05-10 12:52:58 -04:00
Donovan Glover
88ccef09b3
feat: Add bat support 2023-05-10 12:52:45 -04:00
Donovan Glover
0d23db84da
feat: Start kitty from thunar 2023-05-10 12:52:23 -04:00
Donovan Glover
680668ede2
feat: Migrate xresources and cursor theme to nix 2023-05-10 12:52:02 -04:00
Donovan Glover
7dcaa2378e
fix: Migrate remaining kitty config to nix 2023-05-10 12:50:16 -04:00
Donovan Glover
c0377103bd
fix: Remove alacritty
Alacritty does not support MapleMono-NF as a font, whereas kitty does.
kitty also has other nice features such as built-in windows/tabs and
image support.
2023-05-10 11:50:15 -04:00
Donovan Glover
15b231a157
feat: Add zathura config
Note that loading a runtime file in ~/.cache/wal is no longer necessary
since configuration is done declaratively through Nix.

Although this has some downsides, such as the lack of "live reloading"
in some applications, this "feature" wasn't present across all
applications anyway.
2023-05-10 11:44:21 -04:00
Donovan Glover
55e3c4a813
feat: Add stylix
Stylix is like a maintained version of pywal but configuration changes
are managed by Nix and Home Manager, thus guaranteeing a certain level
of reproducibility with its declarative nature.
2023-05-10 11:32:47 -04:00
Donovan Glover
4e47467c7c
fix(neovim): Remove colorizer and cursorline
colorizer bugged out presumably due to order being determined by the Nix
language. I did not like cursorline however I did think cursorword was
cool, so I'm keeping that part of it for now.
2023-05-09 23:44:26 -04:00
Donovan Glover
4df1d91e19
fix(waybar): Use waybar-hyprland from flake
This fixes an issue where wlr/workspaces is considered experimental in
waybar and thus does not work with the current nixpkgs version on NixOS.

References:
- https://github.com/Alexays/Waybar/issues/1766
- https://github.com/hyprwm/Hyprland/discussions/1729
2023-05-09 22:40:06 -04:00
Donovan Glover
27f7daeece
nix(editor): Misc changes
- Added undofile
- Added spell check
- Added back built-in file explorer
- Added some plugins
2023-05-09 21:14:13 -04:00
Donovan Glover
b95cc4184a
nix: Update editor.nix
Was trying out some neovim plugins with Nix. Pretty cool that I don't
have to worry about using *another* package manager like packer.nvim.
2023-05-09 14:08:46 -04:00
Donovan Glover
e1d740fb63
nix: Abstract hyprland config into separate module
This should make it easy to switch between hyprland and other
environments if wanted.
2023-05-09 14:04:01 -04:00
Donovan Glover
1c99ffd784
nix: Modularize editor
Now I know how to abstract modules into separate files instead of having
one big file for everything.
2023-05-09 11:43:39 -04:00