Commit Graph

2050 Commits

Author SHA1 Message Date
Donovan Glover
d97175b059
Add code config
Sometimes you may want to use an editor that is Not Vim. Although such
an editor may be feasible for the majority of users, an editor that is
Not Vim will not behave exactly like Vim, even with plugins.

Existing Vim users should not try to use Code as an editor. It is
instead a useful editor for when someone needs to use a Non Vim editor
on your machine (although you certainly should *not* condone this).

Code does, however, feature a useful file explorer that requires no
configuration nor maintenance to use. It just works.
2018-10-21 14:29:34 -04:00
Donovan Glover
59dc5d1b3a
sxhkd: Don't hardcode top_padding for polybar
Since launch.sh calculates all the bar values for us (as well as bspwm
settings), we can simply store the top_padding value in the user's cache
directory, then reference that number within sxhkd.

This way, if the top_padding value is changed through launch.sh, editing
sxhkdrc manually isn't needed, and the config file doesn't need to be
reloaded.
2018-10-21 11:33:54 -04:00
Donovan Glover
14fa7d6c52
polybar: Get host width from bspc
Although width can also be found through xrandr, it felt a bit messy to
parse output that wasn't meant to be parsed by other programs.

Since I can guarantee that the user will have bspwm (and not xrandr)
installed, I decided to use bspc instead. The current setup only works
for one monitor, but it should be relatively painless to setup multiple
monitors in the future (assuming they share the same dpi).
2018-10-21 11:21:32 -04:00
Donovan Glover
22a4e548d1
bspwm: Update polybar command
Since passing no options is the equivalent of not wanting to use
a bar, we pass "main" here instead.
2018-10-21 10:57:53 -04:00
Donovan Glover
41f46f38f2
polybar: Handle dynamic settings through launch.sh
Since polybar supports include files, we can generate part of the bar
config with launch.sh and store it in $HOME/.cache. Since launch.sh is
a shell script, and since bspc is an interface to bspwm, we can also
change the necessary window manager settings required for different
bars, or even configure the settings for no bar at all.

A future implementation of launch.sh may allow us to change polybar
dimensions based on current resolution and whether the screen is HiDPI
or not, although it probably won't be *too* fancy since I don't need to
support every potential DPI a user may have.

Alternatively, someone could submit a patch for polybar to make it
DPI-aware. This is the ideal solution since the bar would be scaled
naturally based on dpi, instead of having to manually halve things
ourselves.
2018-10-20 20:39:02 -04:00
Donovan Glover
b6f1aeb619
bspwm: Remove polybar-specific styles
I used to not know much about shell scripting, but now that I do,
polybar-specific bspc commands can be handled through the launch.sh
shell script instead of directly from bspwmrc.

This lets us launch different bar styles with different bspc options, or
even set styles for no bar at all.
2018-10-20 20:05:35 -04:00
Donovan Glover
29d6a73d75
polybar: Use inheritance for bars
Maybe this is a new feature of polybar, or maybe I've never read the
documentation thoroughly enough. This commit adds inheritance for my
floating bar and top bar, so that duplication isn't necessary.

This makes things a lot easier to see and understand. There is also a
way to include other files, which may be useful for automatically
generating key value pairs for polybar based on screen resolution.

It may also be used to set different variables (i.e. colors) based on
which bar is used. Pretty handy.
2018-10-20 14:19:22 -04:00
Donovan Glover
7b7d69cffb
polybar: Space out the config file
The added spacing here helps to differentiate between keys, values, and
sections.
2018-10-20 13:41:56 -04:00
Donovan Glover
cc7a249fae
polybar: Add labels for bspwm status
Now that I understand the difference between the monocle desktop
layout and the fullscreen state of a node, it became clear that I
would probably use both.

Since I use the single_monocle config option, desktops with the
tiled layout may contain a monocle node, so I needed a way to tell
which layout a desktop was running.

I initially thought about using sxhkd to send a notification with
the layout portion of bspc query -T -d, however polybar supports
showing the layout natively, so I don't need to use a keybind.

The layout portion of the polybar config may not be needed if, for
example, you decide to disable single_monocle and there is no ambiguity
between fullscreen nodes and monocle desktops.
2018-10-20 13:04:39 -04:00
Donovan Glover
b4b86215b5
sxhkd: Remove resize keybinds
I don't think I've ever used these keybinds after I learned about
holding the left mouse button to move windows and holding the right
mouse button to resize them.

If you don't have access to a mouse, you probably don't need to resize
windows anyway, and certainly not float them. tmux is still an option,
and the preselect ratio option of bspc is still there.

Ultimately, since sxhkd just runs shell commands, you can resize windows
through a terminal or shell script as well.
2018-10-20 10:30:58 -04:00
Donovan Glover
9595c8093d
sxhkd: Refactor bspc keybinds
This commit also removes the "switch to previous node" keybind, since
an option like that changes often and may behave unexpectedly if
another node is focused with the cursor.
2018-10-20 10:20:37 -04:00
Donovan Glover
3b8b3bece4
sxhkd: Move non-bspc commands to the top
The sxhkdrc becomes much easier to manage when all the window manager
commands are at the bottom together.
2018-10-20 03:02:52 -04:00
Donovan Glover
4dfdc10f53
sxhkd: Properly toggle polybar visibility
I tried to do this before, but couldn't figure it out. Now that I
understand more about how windows in X11 work, and now that I know more
about shell scripting, writing this functionality became trivial to do.
2018-10-19 17:33:36 -04:00
Donovan Glover
dfe0e61daf
sxhkd: Combine similar keybindings
There is a shorthand syntax offered by sxhkd that helps us make our
config files more compact. I avoided this syntax at first since I was
new to the software, but now that I've used bspc, sxhkd, and the shell
enough, the shorthand syntax is more concise and easier to read.
2018-10-19 17:17:31 -04:00
Donovan Glover
09e8c16489
Fix bspwm terminology in sxhkdrc
I once tried to simplify bspwm terminology back when I started using the
WM. Although it helped me use bspwm in the short term, there were some
things I was still confused about (for example, I did not know the
difference between a node with the fullscreen state and desktop with the
monocle layout).

This commit fixes that.
2018-10-19 15:11:49 -04:00
Donovan Glover
d42738f4b9
Toggle node modes natively with bspc
There is no need to check for whether or not a certain mode is set,
since bspc has a feature that automatically uses the previous mode if
the same mode was detected.

Also, "monocle" is a desktop layout, not a node mode. And modes are
states, not modes. I confused the terminology quite a bit when I was
starting out with bspwm (maybe to make the transition easier?) but now
that I've used it long enough, I feel comfortable using the proper
terminology. All future bspwm-related commits should (hopefully) contain
the proper wording.
2018-10-19 13:55:31 -04:00
Donovan Glover
a4982e767b
Truly toggle between tiled and fullscreen
I don't know why I couldn't implement it before, but now that I know
more about shell scripting, I know that this works. There's an even
better solution I found in the bspc man pages, which will be covered
in the next commit.
2018-10-19 13:27:48 -04:00
Donovan Glover
30b1f57ebf
Add keybind for current node's mode
This is an example of how to use dunst with sxhkd to show notifications
on demand.
2018-10-19 11:25:53 -04:00
Donovan Glover
fdad3fe1fa
Change default cursor shape to pointer in bspwm
This is required if you want to get rid of the X shaped cursor that
shows by default for programs that don't specify a specific cursor.
2018-10-19 11:08:07 -04:00
Donovan Glover
193a152ff6
Set default cursor theme to breeze_cursors
This sets the cursor to breeze_cursors by default in our window manager.
Now we have a universal theme cursor for both the window manager and
GTK / KDE applications.
2018-10-19 11:01:39 -04:00
Donovan Glover
9e5450f25b
Update lightline config in .vimrc
wal.vim includes a color scheme for lightline, but it only plays nicely
with neovim. This commit conditionally loads the wal color scheme since
using it in vim will throw multiple errors.
2018-10-19 10:55:37 -04:00
Donovan Glover
96c3cc949f
Fix termite padding to support changing color schemes
The solution I used previously for padding in termite did not change the
padding color when other software such as pywal changed the color scheme.

This fixes that, so now it is possible to change color schemes
fully in termite without having to spawn a new terminal. This is
very nice, and also works well with termite's transparency feature.
2018-10-18 14:39:58 -04:00
Donovan Glover
18082b5ddc
Add git checkout abbreviation 2018-10-18 14:18:29 -04:00
Donovan Glover
5e1de9b170
Add netrw config to .vimrc
netrw is the default file browser in vim. It works exceptionally well,
so I use it over other plugins that provide the same functionality.
2018-10-18 14:14:58 -04:00
Donovan Glover
f19dc21649
Use symlinks with pywal templates
Instead of manually changing every instance where a program could run to
use the config in the cache directory, and instead of copying files
every time pywal is updated, it makes sense to create symbolic links for
these files instead.

This ensures that the right settings are used even without knowing the
passed parameters.
2018-10-18 11:16:15 -04:00
Donovan Glover
032a58fc75
Add yay config
By using yay's output instead of pacman's, we can easily see what
version of a package we have and what version it will be updated to.
2018-10-18 10:27:11 -04:00
Donovan Glover
3a524479a3
Use tmux for all termite windows
Since tmux is such a useful program, and since we don't need to worry
about images in termite, it makes sense to start all termite windows
with tmux. This lets us use any and all termite sessions in urxvt as
needed.
2018-10-17 01:56:25 -04:00
Donovan Glover
d4740a92c1
Change bspwm_and_dunst.sh to done.sh
Before pkill would try to terminate the script since it had "dunst" in
its name. This is the solution for that, and it also makes adding new
commands in the future easier.
2018-10-17 01:20:48 -04:00
Donovan Glover
635432b33a
Update termite config
Termite works exceptionally well as a transparent terminal, so I'll just
let termite focus on true color, transparency, and displaying emoji
while urxvt focuses on universal theme changing and images in the
terminal.

There doesn't seem to be a terminal out there (yet) that handles both of
these things in all the software I want, so this compromise is good
enough.
2018-10-17 00:50:41 -04:00
Donovan Glover
aa155f19ca
Refactor Makefile
Since all three stow commands depend on the same options, I made the
NS_STOW_OPTIONS variable to update all the commands at once.
2018-10-15 21:37:18 -04:00
Donovan Glover
ea0dbdae40
Add new make prune command
This allows us to prune old symlinks through make.
2018-10-15 20:28:17 -04:00
Donovan Glover
4f280b0780
Remove Plasma with bspwm support
Use bspwm with XDG_CURRENT_DESKTOP=KDE instead.
2018-10-15 20:24:35 -04:00
Donovan Glover
e5d9de3946
Add GTK config
With these settings, the cursor looks exceptionally well even with
HiDPI. Adapta is used over other GTK themes since Adapta has very good
padding defaults. Adapta also won't cause problems with input fields,
compared to several other GTK themes.
2018-10-15 20:09:17 -04:00
Donovan Glover
8fea3e5fc8
Add full HiDPI support for Qt applications in bspwm
After comparing environment variables between KDE Plasma and bspwm, I
finally figured out that QT_SCREEN_SCALE_FACTORS was needed as well for
full HiDPI support. With this setting and QT_FONT_DPI applied, KDE / Qt
applications now look exactly as they would in Plasma.

To avoid any differences that may arise, I also exported XDG_DATA_DIRS
and some other variables set by Plasma.
2018-10-15 11:34:12 -04:00
Donovan Glover
961bc90798
Add Plasma with bspwm script
This is the last commit I will make regarding Plasma with bspwm
support. This script is required to start Plasma with bspwm, although
it is much better to run KDE applications from bspwm instead.
2018-10-15 10:04:01 -04:00
Donovan Glover
a0c030fe7c
Make post-wal commands conditional
This commit makes the post-wal script a bit more aware of its
environment. This is only to support Plasma with bspwm, which
needs the bspwm settings but not the dunst settings.

Since bspwm with KDE settings performs exceptionally well, I may drop
Plasma with bspwm support altogether and revert this commit at a later
date. The overhead of wmctrl and grep may not be worth it.

Additionally, the filename should probably be changed to a more
generic one in order to support more software as needed.
2018-10-15 09:48:47 -04:00
Donovan Glover
5d82d4ac5a
Update Plasma with bspwm config
Since Plasma does not respect feh, it makes no sense to set a
background for it.

Note that these settings apply to Plasma with bspwm, *not* bspwm with
KDE settings. You should not have to use Plasma with bspwm, since bspwm
with KDE settings should do everything you want and much more.

In the future, I may remove Plasma with bspwm support altogether.
2018-10-15 09:15:06 -04:00
Donovan Glover
4d8e9b1b88
Add wal autostart script
Since wal is used to manage the color scheme, it needs to be started
when running KDE Plasma. This script does just that.

Note that the desktop background is not changed (-n) since Plasma uses
its own background manager and does not respect feh.
2018-10-15 09:04:53 -04:00
Donovan Glover
f6ebc31fe9
Add urxvtd service
Instead of starting urxvtd with urxvtcd, start it automatically with
systemd. This lets us run urxvtc directly in other desktop environments
without having to rely on urxvtcd.
2018-10-15 08:56:37 -04:00
Donovan Glover
bb711596c1
Add ssh-agent service
Instead of trying to do something fancy with shell init scripts, we let
systemd handle ssh-agent instead.
2018-10-15 08:55:20 -04:00
Donovan Glover
7a3bf859ae
Update README
Since this repository will now only host my dotfiles, the README has
been updated to reflect this change.
2018-10-15 01:45:05 -04:00
Donovan Glover
8c4d136155
Add new Makefile
Although I use stow to manage my dotfiles, the way you need to invoke
stow is different depending on where the dotfiles directory is located.

To circumvent this, I wrote a Makefile that automatically determines
the stow directory (the parent directory) and package directory (this
repo) before calling stow.
2018-10-15 01:07:09 -04:00
Donovan Glover
40b172a459
Update zathura
Here is my attempt at adding pywal support.
2018-10-14 23:31:01 -04:00
Donovan Glover
e7f049b9f5
Increase the gpg-agent cache ttl
This makes it easier to work with GPG over an extended period of time.
2018-10-14 23:03:49 -04:00
Donovan Glover
61b683c985
Export SSH_AUTH_SOCK
This lets us manage ssh-agent with systemd.
2018-10-14 22:50:33 -04:00
Donovan Glover
ca6935d08b
Update various dots
Lots of minor improvements here.
2018-10-14 22:48:00 -04:00
Donovan Glover
9a9d8cef92
Organize .vimrc
This commit adds some nice headers to each section of my .vimrc.
2018-10-14 22:32:37 -04:00
Donovan Glover
0c6c28d0e5
Merge vim config into single .vimrc
Previously I separated my .vimrc into multiple files in attempt to
organize it. Now that I know more about vim, however, using only one
config file leads to less moving parts. Additionally, I now use less
vim settings altogether since I frequently have to work on foreign
machines, which probably won't have my .vimrc anyway.
2018-10-14 11:30:24 -04:00
Donovan Glover
cdc96ed5ab
Clean up vim config
In this commit I remove a lot of the things I no longer use in vim. I
also enable lazy loading of some plugins and add lightline for the
status bar.
2018-10-13 19:43:24 -04:00
Donovan Glover
f26f5acedc
Add rofi
Rofi is "a window switcher, application launcher, and dmenu
replacement". It lets you search for and access certain
information at any given time, making it very useful.
2018-10-13 00:41:24 -04:00