diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100644 index 5d3e8e9..0000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "idea-demo", - "image": "ubuntu:16.04" -} \ No newline at end of file diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..f6b9e00 --- /dev/null +++ b/Containerfile @@ -0,0 +1,15 @@ +FROM docker.io/fedora:41 + +# === setup system === +RUN dnf -y install neovim zoxide unzip git go procps bash-completion + +# === setup container user === +RUN useradd -ms /bin/bash user && usermod -aG wheel user && sed -i '/NOPASSWD/s/^#//g' /etc/sudoers +USER user +WORKDIR /home/user +COPY config/user/bashrc /home/user/.bashrc + +# === setup neovim === +RUN git clone --depth 1 https://github.com/AstroNvim/template ~/.config/nvim +COPY config/nvim/lua/community.lua /home/user/.config/nvim/lua/community.lua +COPY config/nvim/lua/polish.lua /home/user/.config/nvim/lua/polish.lua diff --git a/config/nvim/lua/community.lua b/config/nvim/lua/community.lua new file mode 100644 index 0000000..0e498b4 --- /dev/null +++ b/config/nvim/lua/community.lua @@ -0,0 +1,5 @@ +---@type LazySpec +return { + "AstroNvim/astrocommunity", + { import = "astrocommunity.completion.copilot-lua-cmp" }, +} diff --git a/config/nvim/lua/polish.lua b/config/nvim/lua/polish.lua new file mode 100644 index 0000000..f22e7c4 --- /dev/null +++ b/config/nvim/lua/polish.lua @@ -0,0 +1,2 @@ +vim.opt.relativenumber = false +vim.opt.textwidth = 60 diff --git a/config/user/bashrc b/config/user/bashrc new file mode 100644 index 0000000..830d90c --- /dev/null +++ b/config/user/bashrc @@ -0,0 +1,18 @@ +. /etc/bashrc + +# === environment === +export EDITOR=nvim \ + WAYLAND_DISPLAY=wayland-0 \ + XDG_RUNTIME_DIR=/run/user/1000 \ + SSH_AUTH_SOCK=/run/user/1000/ssh-auth-sock + +if [ -n "$MYVIMRC" ]; then + PS1='\[\e[90;42m\] container | \w \[\e[40;32m\]\[\e[m\] ' +else + PS1='\[\e[97;42m\] container | \w \[\e[49;32m\]\[\e[m\] ' +fi + +# === aliases and functions === +alias vi=nvim +post() { curl -sF "content=<-" "https://paste.plabble.org/$2?lang=$1" && echo; } +eval "$(zoxide init --cmd cd bash)" diff --git a/container.sh b/container.sh new file mode 100755 index 0000000..9ff2682 --- /dev/null +++ b/container.sh @@ -0,0 +1,11 @@ +#!/bin/sh +podman run -it \ + --name "${dev:-dev}" \ + -v /run/user/1000/wayland-0:/run/user/1000/wayland-0 \ + -v "$SSH_AUTH_SOCK":/run/user/1000/ssh-auth-sock \ + -v ~/Documents:/home/user/Documents \ + -v ~/.ssh:/home/user/.ssh \ + -v ~/.config/git:/home/user/.config/git \ + --security-opt label=disable \ + --userns=keep-id \ + dev