Commit Graph

590 Commits

Author SHA1 Message Date
Donovan Glover
5c04a58082
docs: Add READMEs for compton, dunst, and zathura
Since my dotfiles are now sorted by individual programs instead of in
groups, I'm trying a new README format. This format should provide more
useful information and be easier to read as well.
2018-11-18 13:27:37 -05:00
Donovan Glover
fb20cb3620
fedora: Install vim plugins during bootstrap.sh
This makes it possible to immediately use vim with all the plugins
installed after running bootstrap.sh, no intervention needed.
2018-11-18 03:46:33 -05:00
Donovan Glover
b3519b2cd2
kitty: Add default window size
Since kitty would automatically assume a fullscreen or half screen size
as the default, it's much easier to simply specify the size all floating
windows should start out as.

Since kitty allows specifying the size in cells instead of pixels, it
is easy to achieve the same "actual" terminal size regardless of which
DPI is being used.
2018-11-18 02:28:34 -05:00
Donovan Glover
e6d88d57ad
Makefile: Add code-extensions target
Now it is possible to run `make code-extensions` to install all the
extensions I use for the editor Code.
2018-11-17 15:11:59 -05:00
Donovan Glover
c4b7b69f66
stow: Split bspwm into separate packages
It turns out that placing similar config files (i.e. bspwm-related) in
the same directory is not the way to go about handling dotfiles since
each config file (or dotfile) *should* manipulate only a single program.

This was not the case back when I used urxvt (which would require the
old method of .Xresources), but now that I understand more about how
*modern* dotfiles work (with $XDG_CONFIG_HOME), separating dotfiles by
program became the obvious choice.
2018-11-17 14:58:13 -05:00
Donovan Glover
200d2b9e7a
archlinux: Update install scripts
Instead of running two systemctl commands (start and enable),
one can simply use `systemctl enable --now` instead.

The grub command was removed since I never used it and haven't
found a need to do so.
2018-11-15 21:18:51 -05:00
Donovan Glover
df766c3a48
meta: Remove all references to urxvt and termite
Now that I've learned kitty, other terminal emulators like termite and
urxvt are no longer necessary. Here I remove any config files that were
necessary for either termite or urxvt and change all terminal options
to kitty.

As an added bonus, a global gtk.css file is no longer necessary. This
contradicted a core idea of dotfiles (that every program should have
its own directory in $XDG_CONFIG_HOME) and was in general a weird hack
that also affected non-termite emulators.
2018-11-15 21:06:15 -05:00
Donovan Glover
4387ab119c
PKGBUILDs: Remove tari-urxvt
It turns out that kitty has support to change all of its colors
independently from the current terminal with a simple command. This
was the only issue I had with making pywal and kitty work together,
so I'm glad I found it.

Additionally, kitty supports DPI changes immediately (at least with
xrdb). There is no need to detach a session and open a new terminal
since kitty will handle DPI changes automatically, compared to other
terminals like urxvt, which would require a new instance. Even then,
the border padding for urxvt is not adjusted to the new DPI; kitty
is simply the way to go if your monitor setup is non-trivial.

As a side note, the kitty documentation is very good. I highly
recommend reading it if you plan to use kitty (which you should).
2018-11-15 17:38:27 -05:00
Donovan Glover
823a1f4728
Update README
This commit fixes the .archlinux link, moves the Arch Linux section
above Fedora, and attempts to continue simplifying the dotfiles section.
2018-11-15 13:34:24 -05:00
Donovan Glover
ae1e3133ac
meta: Simplify README
Less is more. Remove the list of dotfiles and instead consider
everything modular.
2018-11-15 13:22:57 -05:00
Donovan Glover
ed0de68a9b
stow: Split extras into separate packages
Instead of "hiding" dotfiles in an extra group, it is easier to use
separate packages for each unique set of files. Since I'm working on
making my setup more modular, and since I can stow all my dotfiles with
a single command anyway, this configuration is more appealing now.
2018-11-15 12:38:45 -05:00
Donovan Glover
b8e61965c7
meta: Split zathura config into separate files
This lets me use my zathura config without relying exclusively on
pywal being set up (theme set, done.sh ran, cache not cleared).
2018-11-15 11:44:01 -05:00
Donovan Glover
a9caa29b28
meta: Remove plasma config
Since I don't use urxvt anymore, executing pywal at every login is
no longer necessary.
2018-11-15 02:43:15 -05:00
Donovan Glover
4ada38d874
meta: Split kitty config into separate files
Since kitty.conf can include settings from other files, it is easy to
enforce sane kitty defaults without relying on pywal templates.
2018-11-15 02:26:13 -05:00
Donovan Glover
c98ac74257
meta: Remove termite
I removed termite before, but this time I shouldn't need to add it
again. The kitty terminal emulator supports image output and handles
fonts better than termite. Plus, true transparency can be used without
sacrificing images in the terminal.
2018-11-14 19:02:45 -05:00
Donovan Glover
151e706a36
vim: Strategically install plugins
Instead of failing silently when the wal colorscheme is not found, we
can take this as a cue to install the necessary vim plugins instead.
2018-11-14 18:44:22 -05:00
Donovan Glover
b0b27be0ab
vim: Don't raise an error if wal is not found
Since the wal color scheme is not installed until PlugInstall is ran,
the colorscheme function will always throw an error that needs manual
intervention. This fixes that.
2018-11-14 17:50:30 -05:00
Donovan Glover
d767450dcc
fedora: Install pywal locally
Since the local bin directory is already sourced in Fedora,
we can take advantage of it here.
2018-11-14 15:13:50 -05:00
Donovan Glover
a6122f8f73
fedora: Add persistent sudo to bootstrap.sh
Since sudo times out after 5 minutes, and since we don't want to run
every command as root, we can instead create a "persistent sudo" by
invoking the sudo command at least once within 5 minute time frames.

This script does just that, and solves the problem of sudo timing out
after a long command.
2018-11-14 15:08:20 -05:00
Donovan Glover
a985bf68e5
gitattributes: Update path to PKGBUILDs 2018-11-14 14:53:00 -05:00
Donovan Glover
3e77f8f992
sxhkd: Don't start tmux by default
It turns out that since tmux sessions will stay active after you close a
terminal window, it is easy to end up with a lot of empty sessions. This
makes it difficult to detach and re-attach the appropriate tmux sessions.

Additionally, some features of kitty (notably terminal images and
dynamic background opacity) will not work inside tmux. Since kitty has
its own window manager, this caveat can be easily circumvented. By
invoking tmux manually instead, we also avoid the problem of nested
tmux sessions.
2018-11-14 14:43:42 -05:00
Donovan Glover
067c010df8
kitty: Always use fish as the default shell
Since changing the default shell to fish without breaking Fedora with
GNOME is non-trivial, I instead set the option from the terminal
emulator itself.

Although this won't carry over to ttys and other environments, it should
be simple enough to start fish manually when needed.
2018-11-14 14:31:21 -05:00
Donovan Glover
ad3a3fedd3
tari-dev: Add fish completions for httpie
Since the community package doesn't include the fish completions found
upstream, we install them here instead. There is already a bug report
about the fish completions, and when it eventually gets fixed, these
steps can be removed from the PKGBUILD.

Bug report: https://bugs.archlinux.org/task/55786
2018-11-14 14:23:07 -05:00
Donovan Glover
7445de60ca
fedora: Simplify Makefile
Since dotfiles only change the functionality of existing programs, it is
reasonable to stow everything at once for consistency between operating
systems.
2018-11-14 13:39:25 -05:00
Donovan Glover
f5284db737
fedora: Add kitty
Although there's already a default terminal emulator, configuring it
through dotfiles is non-trivial. kitty works exceptionally well on
Fedora, and since I already use it on Arch Linux, I might as well
use it here too.
2018-11-13 15:34:55 -05:00
Donovan Glover
6b30e9201f
fedora: Don't prompt when installing rustup 2018-11-13 14:48:29 -05:00
Donovan Glover
266ce1a6e2
fedora: Fix paths in Makefile
Here we have to reference the RPMs directory explicitly since the
spec file is inside it.
2018-11-13 14:40:25 -05:00
Donovan Glover
3c98fa96ef
fedora: Update README
It turns out that dnf *will* remove unused dependencies when you
uninstall a package.
2018-11-13 13:58:56 -05:00
Donovan Glover
e86ad95cd6
fedora: Add bootstrap script
Since Fedora by default does not include all the dependencies
required to run the Makefile, we install them first.
2018-11-13 13:43:50 -05:00
Donovan Glover
8b9ed3f623
fedora: Update Makefile
Instead of installing a pre-built RPM, we can build it ourselves on the
spot instead. This is less maintenance for me and makes it easier to
verify the package being installed.
2018-11-13 13:38:07 -05:00
Donovan Glover
a3dda2b8b2
Move muya.spec to .fedora
This should work, but it hasn't been tested yet. In the future I'd like
to use branches before pushing large updates to master. This would also
give me the chance to see how symlinks behave when a different branch is
checked out.
2018-11-13 13:00:39 -05:00
Donovan Glover
1c5515d7a5
Add fedpkg files to .gitignore 2018-11-13 12:32:20 -05:00
Donovan Glover
5ade063b89
archlinux: Move install scripts to separate directory 2018-11-13 12:30:23 -05:00
Donovan Glover
c968246923
Move PKGBUILDs to .archlinux
Since fedpkg can access parent directories, having a top-level PKGBUILDs
directory is no longer necessary.
2018-11-13 12:22:24 -05:00
Donovan Glover
f9cc32c0c5
Fix typo in .gitattributes
PKGBUILDs, not PKGBUILDS.
2018-11-13 00:33:16 -05:00
Donovan Glover
de18532b5d
meta: Add .gitattributes
This should prevent PKGBUILDs and their source files from being treated
as repository source code.
2018-11-12 23:14:53 -05:00
Donovan Glover
79bc9d848e
meta: Add .gitignore
Since the PKGBUILDs pull in some archive files as sources, we ignore
them with .gitignore.
2018-11-12 23:11:58 -05:00
Donovan Glover
fa82cc7a1d
PKGBUILDs: Add Makefile
This Makefile automates the process of creating and installing the RPM
package. It hasn't been tested yet, so I may need to fix it later.
2018-11-12 22:57:54 -05:00
Donovan Glover
d5844458b3
PKGBUILDs: Add muya.spec
Here is the spec file I use to set up Fedora machines. It is located in
the PKGBUILDs directory since both my Arch and Fedora setups share the
same source files.
2018-11-12 22:35:11 -05:00
Donovan Glover
a6687d45e0
PKGBUILDs: Add sources
Here are the source files I package with my PKGBUILDs. The tari-scripts
directory features some color scripts from around the web. tari-urxvt
contains patches for urxvt, tari-util houses launch.c, and tari-web is
where my mozilla.cfg is located.
2018-11-12 22:03:37 -05:00
Donovan Glover
881f587fdc
meta: Add PKGBUILDs
Instead of having one big PKGBUILD, I have opted instead to split my
Arch configuration into multiple PKGBUILDs.

Of course, splitting the packages *too much* has diminishing returns,
but some separation makes it easier for both myself and others to pick
and choose any wanted functionality.
2018-11-12 21:32:28 -05:00
Donovan Glover
13afe8d8cd
fedora: Add vendor scripts
These scripts can be manually updated by running the `make update`
command. When you do so, visually compare the diffs. This is to
ensure that nothing particularly naughty happened upstream.

Note that this is not a fool-proof solution since one can simply
modify the content returned by any other location a script requests.
2018-11-11 12:11:44 -05:00
Donovan Glover
534b38ebbf
fedora: Update Makefile
This hasn't been tested yet, but it *should* work.

Most of the software I install is handled by the RPM, with the
exception of software not present in the official repositories.

The install scripts for these software are stored locally in this
repository since I want an easy way to keep track of the diffs. Of
course, you should run the `make update` command yourself to get the
latest updates and visually compare any differences from upstream.
2018-11-11 11:53:49 -05:00
Donovan Glover
5627f07961
bspwm: Update kitty config
This commit adds some functionality not present in the initial commit.
Note that changing background opacity will not work when executed inside
tmux.
2018-11-11 11:38:05 -05:00
Donovan Glover
a349c5805c
fedora: Update README
Since I learned a bit about RPMs and how to make them, I can drastically
simplify the instructions required to replicate my Fedora setup.
2018-11-11 11:17:10 -05:00
Donovan Glover
e164fd07e8
docs: Update README 2018-11-11 11:09:15 -05:00
Donovan Glover
e2df340589
extras: Update httpie config to 1.0.0
Note that this file is automatically formatted by httpie. To avoid
formatting diffs, any changes you make should follow the format
httpie uses.
2018-11-11 10:25:11 -05:00
Donovan Glover
207ef19a7b
meta: Add kitty
I've gone through a lot of terminal emulators by now, and have always
switched between URxvt and Termite (due to the features they support).

For URxvt, this is particularly cumbersome since the version in the
official repositories does not have the patches required for practical
use. Even with patches applied, URxvt supports neither true color nor
emoji. Termite worked well, but it lacked image support.

Kitty features all of the following:

- True color support
- Image support
- Emoji support
- Icon fonts support
- Transparency support

Additionally, projects like Ranger and Neofetch have already taken the
initiative to support the Kitty image protocol (which, luckily for me,
are the only programs I use with images in the terminal).

Why not Alacritty, the other GPU-based terminal?
---

Although Alacritty is also very performant, there are several things
that keep me away from this terminal emulator.

Alacritty, as of this writing, renders neither images nor emoji.
Although it is certainly possible to use a terminal emulator without
either of these, the lack of these features limits what you can do with
the program you (presumably) spend the most time with on your computer.

The current config setup is "all or nothing"; I cannot remove defaults
from my alacritty.yml and expect those same defaults to carry over.
Even common terminal escape sequences are hard-coded into the config
file, which cannot be removed without breaking things.

Some other benefits of kitty:

- Full image support in transparent terminals
- w3m hack + loop is no longer necessary for persistent images
- No weird artifacts around the image
- Can highlight text without affecting the image
- Images aren't lost after switching between desktops
2018-11-07 18:20:19 -05:00
Donovan Glover
0eb271a50c
tmux: Add true color support
It turns out that even if your terminal supports true color, it won't be
used in tmux unless you set the option explicitly. Now it is possible to
enjoy the benefits of true color inside tmux.
2018-11-07 11:34:19 -05:00
Donovan Glover
abe2fab50d
bspwm: Use tmux by default in all cases
Since tmux is only a problem when using neofetch with the w3m image
backend, I have instead added a new keybind to handle this use case,
which floats the terminal by default as well.
2018-11-04 15:20:48 -05:00