aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: bb500fd5bf011bc42a601119cbcd1c0d8dd054ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# dotfiles

desktop configurations. function over form, though things being pretty is nice

## Screenshots

[![clean](https://airen-no-jikken.icu/img/scrot/current/clean_small.png)](https://airen-no-jikken.icu/img/scrot/current/clean.png) [![dirty](https://airen-no-jikken.icu/img/scrot/current/dirty_small.png)](https://airen-no-jikken.icu/img/scrot/current/dirty.png)

## Structure

[.config/init/](.config/init) contains [vars](.config/init/vars), a file
defining shared variables for the desktop which are sourced and used elsewhere.
these settings can be overridden by creating a "voverride" file in the same
directory. `.config/init` also contains a series of "gen/*.sh" files, which
create configuration files in `$tmpdir` so programs not configurable via shell
scripting will automatically match the current settings as well. i stick
symlinks to the `$tmpdir` version where they would normally be. also included
are folders "[funcs](.config/init/funcs/)" and
"[funcreqs](.config/init/funcreqs/)", which, respectively, contain executable
scripts and their prerequisite commands and arbitrary check commands. the
latter prerequisites are tested from [.zprofile](.zprofile) at login and, if
passed, the functions are symlinked into `$tmpdir/funcs`, which is appended to
`$PATH`. thus, this system allows for configs which automatically adapt to the
host environment, enabling only what functionality is compatible.

## Current Utilities

### [vim](https://www.vim.org/)

used neovim for a while, but it some reason stopped playing nicely with
herbtluftwm+alacritty sigwnch-ing, so back to vim again now (which meantime
seems to have been made much quicker; nice). have a few fun things, including
auto-loaded, filetype-specific settings and basic [templates](.vim/skel), a few
fancy mappings, and a simple 16-colour [colourscheme](.vim/colors/ageha.vim).
take a look at [.vimrc](.vimrc) for details and things.

### [herbstluftwm](http://herbstluftwm.org/)

herbstluftwm has the really interesting concept of allowing manual tiling of
frames and then providing automatic layouts for inside those frames. in theory,
it's the best of both worlds, but it gets kind of confusing, so i've just set
the layout to always be max. this way frames basically just have multiple tabs
for me that can by cycled through. it's really neat for saving screen space!
(try splitting a screen with both an editor and a terminal on one side and all
your documentation on the other). i3 can do much the same thing, but it comes
with lots of slightly annoying things to get rid of.

### [alacritty](https://github.com/alacritty/alacritty)

urxvt-perls suddenly stopped working, so switched to alacritty. few keybinding
issues to get around, and font rendering isn't great, but it works

### [ranger](https://ranger.github.io/)/[sxiv](https://github.com/muennich/sxiv)

both are fantastic for keyboard-driven file management. i've forked sxiv to use
4 colours rather than 2, to better fit the theme, but still've got to figure
out how to write a ranger extension that can receive selections from sxiv,
because squinting at filenames is just bleh. python is my bane, though...

### [pass](https://www.passwordstore.org/)

a nice password manager-a-ma-bob, gpg locked and easy to sync with git. there's
a firefox addon, but it doesn't really work, and there's an existing dmenu
frontend, but it's not very featureful, so [i wrote my
own](.config/herbstluftwm/pass.sh).

### [dunst](https://github.com/dunst-project/dunst)/[dmenu](https://bitbucket.org/melek/dmenu2)/[picom](https://github.com/yshui/picom)/[lemonbar](https://github.com/krypt-n/bar)/[nitrogen](http://projects.l3ib.org/nitrogen/)

useful things all around 👍

dmenu with [lineheight
patch](https://tools.suckless.org/dmenu/patches/line-height/) and lemonbar with
xft. a little awkward setting up, though, and bound to x11, so considering
instead ncurses alternatives in specially-placed terminals. bemenu has an
ncurses frontend at least, but unsure of lemonbar replacement...

### [fcitx](http://fcitx-im.org)

input is messy, but fcitx seems like the most functional out there at the
moment. fcitx-mozc a nice.