Commit Graph

17 Commits

Author SHA1 Message Date
Marty Oehme a316eeead2
repo: Remove leftover stow setup
Removed stow-related files, switched dotlink
to use dotter instead of stow.
2023-10-03 16:00:36 +02:00
Marty Oehme dcde027a67
dotter: Simplify local setups
Everything that is in the repo should be listed in the global.toml
file. The local.toml file then picks the stuff to actually
write. For systemwide packages, a systemwide.toml (local) file
is used instead.
2023-10-03 13:19:48 +02:00
Marty Oehme 5e53105a62
install: Add simple dotter install 2023-10-03 13:03:35 +02:00
Marty Oehme d56d0148f6
bootstrap: Fix initial package installation to work 2023-01-16 18:42:42 +01:00
Marty Oehme cac0aee4ca
keyd: Update conf files to new 2.0 syntax
New config syntax uses [ids] section to select which input devices are
affected instead of file names, so we can have all settings (for
similarly set up keyboards) in a single default config file.

The file itself needs to end in `.conf` instead of the old `.cfg` and
there is a slight difference in syntax between the old `C` and the new
`control` for mapping the control key. That is about it.
2022-04-27 13:50:08 +02:00
Marty Oehme 6ac552d3d5
Switch to wayland
Added a simple wayland configuration.
Currently set up simple wayland configuration based on river window
manager and waybar.
Rivercarro is the layout manager, being the same in principle as rivertile,
the default layout manager for river, only it comes with smart gaps
(gaps turn off if there is only one window open)
and monocle mode (give one window all space).

Runs `keyd` in the background to replace the old `xcape` capslock switching
(capslock is escape and if held control).
Uses `swaybg` to set a wallpaper.

Added powermenu and lockscreen scripts.
Improved lockscreen script to detect and work for wayland.
Moved old rofi mode 'powermenu' to more general powermenu script,
which works with any rofi-like selector (dmenu, bemenu, wofi, etc.)
Loses some of its design quality but since it was wonky anyway,
and I rarely see the menu,
we could repurpose its functionality for a more general powermenu
concept.
Currently hardcoded for `bemenu` but can be easily swapped and possibly
even extended back to rofi.
Fixed file upload link sharing to clipboard.

Updated rofi-pass to pass-pick.
Made rofi-pass universal and less integrated to rofi - that's also the
reason for the name change.
`pass-pick` works with rofi (default), bemenu or dmenu. In theory it
should also work with any other picker that contains a stdin listing
function similar to dmenu.
It has been definitely tested both on rofi and bemenu.
The best user experience still reigns on rofi, where available keys are
displayed on the picker and the keys themselves make the most sense.
But all functions can be reached from bemenu as well, though the key
mappings are more arbitrary and can not be changed as in rofi.
The autofilling tool works with both xdotool and ydotool, so should work
both on X11 and on Wayland. Ydotool ideally requires its daemon to be
running, otherwise some of the typing may get gut off. Otherwise no
change should be necessary.

Updated qutebrowser open_download for bemenu.
Updated download opening script to work with both rofi and bemenu.
Prefers original rofi implementation but works with both, and can be set
to use a custom dmenu-like file picker as well.

Add brightnessctl and removed custom audio / brightness scripts since they
became unnecessary.

Updated bootstrap script to include system files:
With `keyd` taking its configuration from the `/etc` directory and not
home, a second stow stage was necessary. These stow files are in a
module called `system-packages` inside the top-level `bootstrap` stow
package.
They will not be installed by the default dotfile stow invocation but
have been integrated as an extra step into the install script.
Installing this module requires sudo privileges!

Switched vifm überzug to sixel graphics rendering.
überzug relies on X11 functionality to work, while sixel does not.
Unfortunately, alacritty does not work with sixel graphics yet, only
foot does (somewhat).

Waybar currently runs the gruvbox dark soft color scheme.
Added the old polybar archupdates script to waybar and extended it to
output json format with additional metadata that waybar can read.
Can still output the old plaintext format that polybar expects.
Added a wireguard connection to waybar,shows if currently
connected to either a wireguard or tun VPN service.
If so, shows an icon in the waybar - that can be hovered over to show
the full assigned IP address.
Added an upcoming event display to waybar,
a simple event indicator to show upcoming events on the calendar, on
hovering over it the tooltip lists all upcoming events.

Added `screenshot` script to take simple screenshots and
rectangle region shots of the current output.
Can be invoked through the river shortcut PrintScr:
`PrintScr` - Fullscreen screenshot
`Mod+PrintScr` - Region screenshot
`Shift+PrintScr` - Fullscreen screenshot and file upload
`Mod+Shift+PrintScr` - Region screenshot and file upload

Extended `sharefile` to take paths through stdin and make
use of `fd` if it is found on the system.
2021-11-30 22:30:07 +01:00
Marty Oehme f4400da743
repo: Update linting for 4-spaced shell scripts 2021-04-04 20:52:52 +02:00
Marty Oehme 4f4e67ff1c
[repo] Add & update docs, fix install script dirs 2020-07-08 13:51:27 +02:00
Marty Oehme ecbf8409f9
Add git hook for package comparison
When moving to commit, this hook will automatically fire and check the
current system's installed packages against those explicitly committed
to the repository. If they mismatch it will inform the user.

It will not prevent the commit, but simply add a comment at the top of
the commit messages to remind the user that something is unbalanced
between both. It would be recommended to either check the additional
package into source control, remove it from the current system, or
explicitly add it to ignored packages.
2020-02-07 22:31:41 +01:00
Marty Oehme c7ed986c0e
Update package list
Updated package list in preparation for unified package management. For
the moment still uses basic bash script to manage package installation.
Packages are collected in a big list, with some packages being ignored.

This is in preparation for the possibility to manage future package
'groups' directly in pacman meta packages. They will then be added /
removed to the individual PKGBUILD files as dependencies and will
automatically be kept up-to-date, added and removed on all systems which
use the corresponding meta group.

It also opens the path to have commit-time checking of irregularities
between the packages stipulated in the dotfile repository and the
current running system. This can be done by adding all packages of the
different package group lists, unifying them and removing potential
ignored packages.

It allows e.g. printing a warning when committing changes to the
repository while the system packages and the repository packages differ,
to make sure no package dependencies were introduced without knowing it
and which would introduce potential breaking changes into the dotfiles.
2020-02-07 22:07:53 +01:00
Marty Oehme 71f9076846 Change bootstrap to use standard stow functions
Removed the `autostow.sh` scipt. Its use was to call stow for every
folder in base directory and ignore certain folders. Both those
functions can be handled by stow on its own.

Stow allows defining per-directory ignore patterns with
`.stow-loca-ignore` files, which can be set to `.*` to completely ignore
a folder, just as before. And Stow can be called with a glob pattern to
automatically call it for every directory in the repository.

`.stowrc` additionally makes sure that all operations take place
targeting the home directory of the current user, since that is where
the dotfiles will (generally) be stored. Of course, this can be
overridden with the stow command-line options (see option precedence in
stow manual).

Finally, the bootstrap stow module adds an alias `dotlink` to the shell,
which allows fast (re-)stowing of all directories in the dotfile
repository. It uses a hard-coded location for the .dotfiles base
directory, so if the dotfiles are cloned anywhere else this has to be
customized.
2020-02-06 12:48:08 +01:00
Marty Oehme 68b0219354 Rename bootstrap directory
Renamed bootstrap directory to _bootstrap to conform to default ignore
pattern of autostow.sh, and make it visually clear that this is a
special directory, not one used for the dotfiles itself.
2020-01-30 13:29:03 +01:00
Marty Oehme b702158b7c Add central variable setting bootstrap directory
Prepare for moving bootstrap directory to conform to new ignore pattern
of autostow.sh script. Bootstrap directory can be overwritten through
environment variable BOOTSTRAP_DIRECTORY, however for now it still
rigidly requires the existence of an install_packages.sh file and an
autostow.sh file which it wants to execute.
2020-01-30 13:18:36 +01:00
Marty Oehme 6fd8fcf8ca Restructure bootstrap dir, fix install.sh
With bootstrap files no longer linked to config directory, we can have
an easier directory structure with less nesting for them. Install.sh
needs to use the new structure when calling its bootstrap scripts.
2019-12-30 11:04:54 +01:00
Marty Oehme 7e0d5440d8 Add basic bootstrap routine 2019-12-30 10:20:17 +01:00
Marty Oehme af27c578b2 Remove larbs from repo, can be called as gitlab snippet instead. Fix some documentation in zshrc. 2019-02-21 19:36:24 +01:00
Marty Oehme e4980932b9 Add larbs script to automated package and dotfile installation 2019-02-21 18:25:02 +01:00