matyama / configs Goto Github PK
View Code? Open in Web Editor NEWConfiguration and scripts for Ubuntu desktop
License: MIT License
Configuration and scripts for Ubuntu desktop
License: MIT License
Extend upgrade
script to automatically detect new versions of tools/programs/libraries managed by sdk
and binenv
and install them in one go with other package manages.
sdk
toolsbinenv
tools$HOME/.krew
seems to be duplicate in $PATH
There might be two reasons why this happens
~/.zshenv
is executed twicebinenv install krew
creates a hook to add it to PATH
and export in .zshenv
is thus unnecessaryxdotool
, as the name suggests, only supports X11. Because Ubuntu 22.04 (LTS) now ships with Wayland as the default WM, there are some tools affected by this change - i.e. not working anymore.
Currently this affects mainly the alacritty_toggle.sh
script which utilizes following xdotool commands:
search
with --pid
and --onlyvisible
options to lookup window ID based on PIDgetwindowfocus
to get the ID of currently focused windowwindowactivate
to bring up a window (and potentially switch to another display the window is on)windowmap
/ windowunmap
to show/hide a windowPossible alternatives:
ydotool
- supports only commands: type
, key
, mousemove
, click
wtype
- only xdotool type
, compositor needs to support the virtual-keyboard-unstable-v1
protocol but mutter (gnome) does not currently support itwlrctl
- requires wlroots
c85bd8a introduced CocUpdate
as part of the upgrade
script. However, CocUpdate
does not seem to execute, probably due to immediate qall
.
p10k.zsh
should only use BASE16_BASE*
variables when setting background/foreground colors. d123775 introduces these variables and used them in the most important cases but not all.
Replace all remaining hard-coded values by BASE16_BASE*
. See these occurrences by running:
rg '(FOREGROUND|BACKGROUND|COLOR)=\d+$' .config/zsh/p10k.zsh
Current docs and impl. says:
After linking
.pam_environment
for the first time, one should manually update/etc/pam.d/login
according to these instructions.
It would be nice to have this automated.
Unclutter $HOME
directory by moving config files to XDG_CONFIG_HOME
, XDG_DATA_HOME
and/or XDG_CACHE_HOME
.
See Arch's docs on XDG support.
This is a tracking issue for following apps/tools:
~/.gitconfig
- move to $XDG_CONFIG_HOME/git/config
direnv
: https://github.com/direnv/direnv#the-stdlib~/.binenv
byobu
- see docs on BYOBU_CONFIG_DIR
~/.oh-my-zsh
.p10k.zsh
: use POWERLEVEL9K_CONFIG_FILE
~/.poetry
~/.npm
ghcup
(ghc
, cabal
) see: https://www.haskell.org/ghcup/guide/#xdg-supportstack
~/.helm
~/.minikube
~/.kube
- hard-coded, there's an open issue~/.rustup
- not yet supported out-of-the-box, set RUSTUP_HOME
~/.cargo
- not yet supported out-of-the-box, set CARGO_HOME
~/.sdkman
and possibly managed JVM components: Java, Scala, Kotlin, kscript, maven, gradle~/.java
~/.sbt
and ~/.ivy2
- still an open issue but there's a workaround run sbt
with -ivy
and -sbt-dir
pointing to XDG_DATA_HOME
locations~/.kscript
- set KSCRIPT_CACHE_DIR
~/.m2
- use custom settings.xml
and follow current workaround~/.gradle
- set GRADLE_USER_HOME
~/go
- not yet supported out-of-the-box, set GOPATH
~/.gem
(ruby)~/.travis/
~/.aws
- set AWS_SHARED_CREDENTIALS_FILE
and AWS_CONFIG_FILE
less
- should be supported in newer versions or use LESSHISTFILE
and LESSKEY
~/.wgetrc
, ~/.wget-hsts
~/.ipython
- supported (i.e. files are picked up) if manually moved to XDG dirs, see 8.x release notes~/.jupyter
- not yet supported out-of-the-box, set JUPYTER_CONFIG_DIR
~/.kaggle
- set KAGGLE_CONFIG_DIR
~/.crawl
~/.thunderbird
- hard-coded: https://bugzilla.mozilla.org/show_bug.cgi?id=735285~/.mozilla/
~/.pki
~/.pki
~/.pki
~/.gnome
- generally xdg-utils
, currently hard-coded in xdg-desktop-menu
, used e.g. by chromium, PR with fix exists, however it is not merged yet~/.vscode
~/.lynxrc
, possibly ~/.lynx_cookies
- use LYNX_CFG
or LYNX_CFG_PATH
(see https://linux.die.net/man/1/lynx)~/.gnupg
- use GNUPGHOME
but check the notes (needs additional tweak)~/.vimrc_background
hard-coded in $BASE16_SHELL_HOME/profile_helper.sh
and .base16_theme
symlinked~/.nvidia-settins-rc
- created by nvidia-settings
, not yet supported out-of-the-box, set an alias with nvidia-settings --config ...
~/.nv
(CUDA) - set CUDA_CACHE_PATH
~/.keras
- set KERAS_HOME
, but there is/was an issue with tf.keras
~/sklearn_learn_data
- set SCIKIT_LEARN_DATA
~/tensorflow_datasets
- set TFDS_DATA_DIR
~/snap/
- XDG spec support is "planned work"~/.krew/
- modify KREW_ROOT
and set it for installation, see docs~/.yarn/
- should be partially supported, workaround for ~/.yarnrc
is to define an alias with --use-yarnrc
(if such exists) using XDG_CONFIG_HOME
~/.sudo_as_admin_successful
- with sudo >= 1.9.6
one can set admin_flag
in /etc/sudoers
~/.redhat
- contains single file anonymousId
, most likely created by vscode
's telemetry~/.vimdid
~/.bash_history
- set HISTFILE
in .bashrc
similarly as it's done in .zshrc
~/.python_history
- hard-coded, there are some workarounds but it seems that only from python itself~/.scala_history
- can be changed with scala -Dscala.shell.histfile=...
, note: check spark-shell
, applies to Scala 2 or SBT_OPTS
could work too~/.dotty_history
- applies to Scala 3~/.selected_editor
- used by select-editor
, should not be necessary with EDITOR
set~/.docker
- set DOCKER_CONFIG
~/.debug
- created and used by perf
, currently hard-codedd123775 introduced custom Base16 color setup to p10k.zsh
. This includes definition and usage of BASE16_BASE*
variables.
Unfortunately, running p10k configure
will rewrite p10k.zsh
and thus revert these color changes. Make a script that would re-apply this custom color config or investigate other means how to preserve it.
Setup completions for ghcup
, see https://gitlab.haskell.org/haskell/ghcup-hs#shell-completion.
pam_env
will deprecate ~/.pam_environment
Seek out some alternatives:
pam_env
is actually not deprecating /etc/security/pam_env.conf
nor /etc/environment
python3.6 python3.7: python
ifneq ($(shell which $@ 2> /dev/null),)
@echo ">>> $$($@ --version) already installed"
else
@echo ">>> Installing $@"
sudo add-apt-repository -y ppa:deadsnakes/ppa
sudo apt update
sudo apt install -y $@-dev $@-venv
endif
The issue is that $@
is not resolved at the time ifneq
is evaluated and thus the rule always proceeds with an installation.
Binenv fails to install latest version (in the distribution list) of k8s krew
.
Krew changed the .tar.gz
release file name between 0.4.1
>> 0.4.2
to include linux
and amd64
. Presumably, these correspond to $GOOS
and $GOARCH
. However, even if these environment variables are set, binenv install krew 2.4.2
fails.
❯ binenv install krew 0.4.2
2022-03-18T12:36:40+01:00 ERR unable to install "krew" (0.4.2) error="unable to download binary at https://github.com/kubernetes-sigs/krew/releases/download/v0.4.2/krew.tar.gz: 404 Not Found"
Tested for following version:
❯ binenv version
binenv version 0.17.1 (built 2022-01-31T13:29:08Z)
See e.g. https://askubuntu.com/a/1056392
For instance as described here. Possibly run the service after startup.
Additionally, check that images from local registry can be accessed (pulled) from minikube - see official docs.
Check if restoring PS1 is necessary or not - 345e64e modifications seem fine for the moment.
Use multiple targets to de-duplicate code. E.g.
$(FONTS_DIR) $(ZSH_CUSTOM) ~/vm:
mkdir -p $@
Another good place for this are python*
targets. See stackoverflow and make manual for reference.
As mentioned in commit 53d56bb, current Makefile
setup has all the config linking as part of single target links
.
It might be cleaner to link configs while/after installation of appropriate tool. E.g. to link all zsh config as part of (or aftter) installing (oh-my-)zsh. The rationale is that configs have to be linked just once as all the changes are propagated to the repo anyways.
Migrate some or all to binenv:
base16-fzf
config-registry
(can be installed and managed by krew
)Add dconf dump
(and load) to Makefile
. For instance to save and load Alacritty toggle keybinging.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.