Compare commits
136 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3ad4fb207f | ||
|
|
84f405dc76 | ||
|
|
0f73c59ec7 | ||
|
|
55f2ca393b | ||
|
|
5747573a94 | ||
|
|
45f8c8a8fa | ||
|
|
cb764e7710 | ||
|
|
109cb1918e | ||
|
|
45ff4d5838 | ||
|
|
62415d9fa2 | ||
|
|
c93a09c3df | ||
|
|
aad939bb93 | ||
|
|
27f0bfbbf3 | ||
|
|
cae82aaf8a | ||
|
|
2802cc319d | ||
|
|
21ddeb87a1 | ||
|
|
9fd3ad2910 | ||
|
|
dd9ce9cd69 | ||
|
|
d3318890a9 | ||
|
|
8e99534112 | ||
|
|
ece649606e | ||
|
|
d41a47b887 | ||
|
|
fc29e1698a | ||
|
|
4fb08c390c | ||
|
|
dd263492b5 | ||
|
|
4a6ae43a42 | ||
|
|
16491f437f | ||
|
|
c3e5fc9028 | ||
|
|
16640c4642 | ||
|
|
a09a675b41 | ||
|
|
6097df0c27 | ||
|
|
98e73aab55 | ||
|
|
12154d5bcb | ||
|
|
41ab4d3222 | ||
|
|
8c9e987421 | ||
|
|
f7c47d6fa1 | ||
|
|
558e034386 | ||
|
|
5e721b5418 | ||
|
|
19218bc9ce | ||
|
|
0a4f785a04 | ||
|
|
32bd6551e9 | ||
|
|
04741d27a9 | ||
|
|
c3b05e35f1 | ||
|
|
c71a1bd7ce | ||
|
|
621b05a216 | ||
|
|
823fba724e | ||
|
|
63d6ac46a3 | ||
|
|
f53b310f52 | ||
|
|
737c3cf77b | ||
|
|
2473ee6a9d | ||
|
|
56d0e8e3fd | ||
|
|
ea5aff4953 | ||
|
|
914f1320cd | ||
|
|
7969df993b | ||
|
|
e722a447a6 | ||
|
|
7be2de3bbc | ||
|
|
33a005f900 | ||
|
|
9d33dddce5 | ||
|
|
cb53e9e610 | ||
|
|
90788bb295 | ||
|
|
070147b863 | ||
|
|
93b37a61f5 | ||
|
|
4bba41ea48 | ||
|
|
77040968df | ||
|
|
7db2d1470d | ||
|
|
7ca6c4a157 | ||
|
|
0d55f0246c | ||
|
|
9225c0a888 | ||
|
|
b1c1d1d3d1 | ||
|
|
6173f4072f | ||
|
|
28ce1cf67b | ||
|
|
03cd9a4be5 | ||
|
|
7078a1a96a | ||
|
|
880e2120df | ||
|
|
643cc5e19b | ||
|
|
af93df5181 | ||
|
|
c6214984ff | ||
|
|
592cfb867c | ||
|
|
2191be6255 | ||
|
|
5f12976920 | ||
|
|
e0ec1e606f | ||
|
|
1a01a958d5 | ||
|
|
a257d309d9 | ||
|
|
5db1a379e4 | ||
|
|
62ed20d1f5 | ||
|
|
f1061c3c8c | ||
|
|
6f25d234c3 | ||
|
|
4f6a0c34d5 | ||
|
|
3caf6e9a67 | ||
|
|
092b3d6061 | ||
|
|
a62a45f9f4 | ||
|
|
7afe711932 | ||
|
|
c4ddee1d29 | ||
|
|
ab286ed4a2 | ||
|
|
077b1f7083 | ||
|
|
653ef5b48b | ||
|
|
c8b480ccfd | ||
|
|
dec5fcf0f5 | ||
|
|
5eec1d1c38 | ||
|
|
8d5d84dedb | ||
|
|
d277850804 | ||
|
|
eb3fb4f88e | ||
|
|
85818a4094 | ||
|
|
be73df6529 | ||
|
|
62cb8d8d43 | ||
|
|
aede818226 | ||
|
|
42a55de42f | ||
|
|
c109a94823 | ||
|
|
c4779b2a79 | ||
|
|
8b162bf941 | ||
|
|
4fd859f00c | ||
|
|
c8438c44aa | ||
|
|
c5c1e698f5 | ||
|
|
a45c1e0702 | ||
|
|
48a210554c | ||
|
|
319b59360b | ||
|
|
87db47ab1b | ||
|
|
c9d2951cd2 | ||
|
|
ae736fa609 | ||
|
|
c22751909d | ||
|
|
9e6eeb6535 | ||
|
|
3af7a004c2 | ||
|
|
0f9b50e154 | ||
|
|
af2c635c23 | ||
|
|
b2ef7e48b4 | ||
|
|
0150e29451 | ||
|
|
43dab69a0b | ||
|
|
3ec9d8479e | ||
|
|
81f83d85dc | ||
|
|
b6653a4252 | ||
|
|
b01b2c5aac | ||
|
|
c71ba09614 | ||
|
|
76d6787417 | ||
|
|
a8f6e2df65 | ||
|
|
e4be757d6a | ||
|
|
f9a3e1c58d |
325 changed files with 30506 additions and 1174 deletions
|
|
@ -1,6 +0,0 @@
|
|||
[window]
|
||||
decorations = "Transparent"
|
||||
|
||||
[font]
|
||||
normal = { family = "JetBrainsMono NF", style = "Regular" }
|
||||
size = 12
|
||||
2
.bashrc
2
.bashrc
|
|
@ -2,8 +2,6 @@
|
|||
# ~/.bashrc
|
||||
#
|
||||
|
||||
eval "$(mise activate bash)"
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
|
|
|
|||
13
.gitconfig
13
.gitconfig
|
|
@ -1,13 +0,0 @@
|
|||
[credential "https://github.com"]
|
||||
helper =
|
||||
helper = !/usr/bin/gh auth git-credential
|
||||
[credential "https://gist.github.com"]
|
||||
helper =
|
||||
helper = !/usr/bin/gh auth git-credential
|
||||
[credential "https://git.palko.ca"]
|
||||
helper =
|
||||
[user]
|
||||
email = benjaminpalko@hotmail.com
|
||||
name = Benjamin Palko
|
||||
[credential]
|
||||
helper = store
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
|
|
@ -3,9 +3,3 @@
|
|||
./cava/config
|
||||
cava/config
|
||||
|
||||
# Discocss
|
||||
./discocss
|
||||
discocss/
|
||||
!./discocss/custom.css
|
||||
!discocss/custom.css
|
||||
|
||||
|
|
|
|||
6
.gitmodules
vendored
6
.gitmodules
vendored
|
|
@ -1,6 +0,0 @@
|
|||
[submodule "nvim"]
|
||||
path = nvim
|
||||
url = https://git.palko.ca/baobeld/nvim.git
|
||||
[submodule "lux-shell"]
|
||||
path = quickshell
|
||||
url = https://git.palko.ca/baobeld/lux-shell.git
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
asdfPlugins=(
|
||||
"nodejs"
|
||||
"bun"
|
||||
"python"
|
||||
"rust"
|
||||
"golang"
|
||||
)
|
||||
|
||||
_addPlugins() {
|
||||
for plugin; do
|
||||
asdf plugin add "${plugin}"
|
||||
done
|
||||
}
|
||||
|
||||
# Add asdf plugins
|
||||
_addPlugins "${asdfPlugins[@]}"
|
||||
|
||||
# Install plugins
|
||||
asdf install
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
if [ ! "$(getent group docker)" ]; then
|
||||
sudo groupadd docker
|
||||
fi
|
||||
sudo usermod -aG docker "${USER}"
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
#!/bin/bash
|
||||
# _ _ _
|
||||
# | | (_) |__ _ __ __ _ _ __ _ _
|
||||
# | | | | '_ \| '__/ _` | '__| | | |
|
||||
# | |___| | |_) | | | (_| | | | |_| |
|
||||
# |_____|_|_.__/|_| \__,_|_| \__, |
|
||||
# |___/
|
||||
#
|
||||
# by Benjamin Palko [based on Stephan Raabe] (2023)
|
||||
# -----------------------------------------------------
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Function: Is package installed
|
||||
# ------------------------------------------------------
|
||||
_isInstalledPacman() {
|
||||
package="$1"
|
||||
check="$(sudo pacman -Qs --color always "${package}" | grep "local" | grep "${package} ")"
|
||||
if [ -n "${check}" ]; then
|
||||
echo 0 #'0' means 'true' in Bash
|
||||
return #true
|
||||
fi
|
||||
echo 1 #'1' means 'false' in Bash
|
||||
return #false
|
||||
}
|
||||
|
||||
_isInstalledYay() {
|
||||
package="$1"
|
||||
check="$(yay -Qs --color always "${package}" | grep "local" | grep "\." | grep "${package} ")"
|
||||
if [ -n "${check}" ]; then
|
||||
echo 0 #'0' means 'true' in Bash
|
||||
return #true
|
||||
fi
|
||||
echo 1 #'1' means 'false' in Bash
|
||||
return #false
|
||||
}
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Function Install all package if not installed
|
||||
# ------------------------------------------------------
|
||||
_installPackagesPacman() {
|
||||
toInstall=()
|
||||
for pkg; do
|
||||
if [[ $(_isInstalledPacman "${pkg}") == 0 ]]; then
|
||||
echo ":: ${pkg} is already installed."
|
||||
continue
|
||||
fi
|
||||
toInstall+=("${pkg}")
|
||||
done
|
||||
|
||||
if [[ "${toInstall[@]}" == "" ]]; then
|
||||
# echo "All pacman packages are already installed.";
|
||||
return
|
||||
fi
|
||||
|
||||
# printf "Package not installed:\n%s\n" "${toInstall[@]}";
|
||||
sudo pacman --noconfirm -S "${toInstall[@]}"
|
||||
}
|
||||
|
||||
_installPackagesYay() {
|
||||
toInstall=()
|
||||
for pkg; do
|
||||
if [[ $(_isInstalledYay "${pkg}") == 0 ]]; then
|
||||
echo ":: ${pkg} is already installed."
|
||||
continue
|
||||
fi
|
||||
toInstall+=("${pkg}")
|
||||
done
|
||||
|
||||
if [[ "${toInstall[@]}" == "" ]]; then
|
||||
# echo "All packages are already installed.";
|
||||
return
|
||||
fi
|
||||
|
||||
# printf "AUR packags not installed:\n%s\n" "${toInstall[@]}";
|
||||
yay --noconfirm -S "${toInstall[@]}"
|
||||
}
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
if [ ! -d ~/.oh-my-zsh/ ]; then
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended --keep-zshrc
|
||||
fi
|
||||
|
|
@ -1,17 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
if sudo pacman -Qs yay > /dev/null ; then
|
||||
echo ":: yay is already installed!"
|
||||
else
|
||||
echo ":: yay is not installed. Starting the installation!"
|
||||
_installPackagesPacman "base-devel"
|
||||
SCRIPT=$(realpath "$0")
|
||||
temp_path=$(dirname "$SCRIPT")
|
||||
echo $temp_path
|
||||
git clone https://aur.archlinux.org/yay-git.git ~/yay-git
|
||||
cd ~/yay-git
|
||||
makepkg -si
|
||||
cd $temp_path
|
||||
echo ":: yay has been installed successfully."
|
||||
fi
|
||||
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
packagesPacman=(
|
||||
"mplayer"
|
||||
"discord"
|
||||
"signal"
|
||||
"spotify-launcher"
|
||||
"obsidian"
|
||||
"krita"
|
||||
"inkscape"
|
||||
"gimp"
|
||||
"blender"
|
||||
"godot-mono"
|
||||
"thunderbird"
|
||||
"prismlauncher"
|
||||
)
|
||||
|
||||
packagesYay=(
|
||||
"zen-browser-bin"
|
||||
"aseprite"
|
||||
"davinci-resolve"
|
||||
)
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
packagesPacman=(
|
||||
"grep"
|
||||
"wget"
|
||||
"curl"
|
||||
"unzip"
|
||||
"xclip"
|
||||
"inotify-tools"
|
||||
"pipewire"
|
||||
"wireplumber"
|
||||
"pipewire-audio"
|
||||
"pipewire-alsa"
|
||||
"pipewire-pulse"
|
||||
"python-pywal",
|
||||
"noto-fonts",
|
||||
"noto-fonts-cjk",
|
||||
"noto-fonts-emoji"
|
||||
)
|
||||
|
||||
packagesYay=(
|
||||
)
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
packagesPacman=(
|
||||
"plymouth"
|
||||
)
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
packagesPacman=(
|
||||
"xdg-desktop-portal"
|
||||
"xdg-desktop-portal-gnome"
|
||||
)
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
packagesPacman=(
|
||||
"hyprland"
|
||||
"hypridle"
|
||||
"hyprlock"
|
||||
"polkit"
|
||||
"rofi-wayland"
|
||||
"swaync"
|
||||
"swww"
|
||||
"waybar"
|
||||
"bluez"
|
||||
"bluez-utils"
|
||||
"blueman"
|
||||
"xdg-desktop-portal-hyprland"
|
||||
"gtk3"
|
||||
"gtk4"
|
||||
"grim"
|
||||
"slurp"
|
||||
"swappy"
|
||||
"cliphist"
|
||||
"xorg-xrdb"
|
||||
)
|
||||
|
||||
packagesYay=(
|
||||
"nwg-look"
|
||||
"aylurs-gtk-shell"
|
||||
)
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
packagesPacman=(
|
||||
"kitty"
|
||||
"zsh"
|
||||
"zsh-autosuggestions"
|
||||
"zsh-syntax-highlighting"
|
||||
"git"
|
||||
"github-cli"
|
||||
"lazygit"
|
||||
"neofetch"
|
||||
"ripgrep"
|
||||
'fzf'
|
||||
"neovim"
|
||||
"ttf-jetbrains-mono-nerd"
|
||||
"mise"
|
||||
"btop"
|
||||
"cmatrix"
|
||||
"dotnet-runtime"
|
||||
"dotnet-sdk"
|
||||
"aspnet-runtime"
|
||||
"wine"
|
||||
"docker"
|
||||
"docker-compose"
|
||||
"meson"
|
||||
"glfw"
|
||||
"glad"
|
||||
)
|
||||
|
||||
packagesYay=(
|
||||
"lazydocker"
|
||||
"cava"
|
||||
)
|
||||
|
|
@ -1,33 +1,12 @@
|
|||
#!/bin/bash
|
||||
|
||||
# files
|
||||
files=(
|
||||
".bashrc"
|
||||
".gitconfig"
|
||||
".zshrc"
|
||||
)
|
||||
|
||||
_symlinkFiles() {
|
||||
for file; do
|
||||
if [ -h ~/${file} ]; then
|
||||
continue
|
||||
fi
|
||||
if [ -f ~/${file} ]; then
|
||||
rm ~/${file}
|
||||
fi
|
||||
ln -s ~/dotfiles/${file} ~/${file}
|
||||
done
|
||||
}
|
||||
|
||||
# directories
|
||||
directories=(
|
||||
"cava"
|
||||
"gtk-3.0"
|
||||
"gtk-4.0"
|
||||
"hypr"
|
||||
"kitty"
|
||||
"mise"
|
||||
"neofetch"
|
||||
"nvim"
|
||||
"quickshell"
|
||||
"rofi"
|
||||
"swappy"
|
||||
"swaync"
|
||||
|
|
@ -37,16 +16,15 @@ directories=(
|
|||
|
||||
_symlinkDirs() {
|
||||
for dir; do
|
||||
if [ -h ~/.config/${dir} ]; then
|
||||
if [ -h ~/.config/"${dir}" ]; then
|
||||
continue
|
||||
fi
|
||||
if [ -d ~/.config/${dir}/ ]; then
|
||||
if [ -d ~/.config/"${dir}"/ ]; then
|
||||
echo "Deleting existing directory ${dir}"
|
||||
rm -rf ~/.config/${dir}/
|
||||
rm -rf ~/.config/"${dir}"/
|
||||
fi
|
||||
ln -s ~/dotfiles/${dir}/ ~/.config/
|
||||
ln -s ~/dotfiles/"${dir}"/ ~/.config/
|
||||
done
|
||||
}
|
||||
|
||||
_symlinkFiles "${files[@]}"
|
||||
_symlinkDirs "${directories[@]}"
|
||||
|
|
|
|||
|
|
@ -1,11 +0,0 @@
|
|||
# -n tells `wal` to skip setting the wallpaper.
|
||||
wal -i ~/Wallpapers/ -n
|
||||
|
||||
# Using feh to tile the wallpaper now.
|
||||
# We grab the wallpaper location from wal's cache so
|
||||
# that this works even when a directory is passed.
|
||||
swww img "$(< "${HOME}/.cache/wal/wal")" --transition-type wipe --transition-angle 45 --transition-fps 90
|
||||
|
||||
# Copy cava and update config
|
||||
cp ~/.cache/wal/cava-config ~/dotfiles/cava/config && pkill -USR2 cava
|
||||
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
wal -i ~/Wallpapers/ -n
|
||||
gsettings set org.gnome.desktop.background picture-uri-dark "file://$(cat ~/.cache/wal/wal)"
|
||||
cp ~/.cache/wal/cava-config ~/dotfiles/cava/config && pkill -USR2 cava
|
||||
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/bash
|
||||
|
||||
chsh -s "$(which zsh)"
|
||||
129
.zshrc
129
.zshrc
|
|
@ -1,129 +0,0 @@
|
|||
# If you come from bash you might have to change your $PATH.
|
||||
# export PATH=$HOME/bin:/usr/local/bin:$PATH
|
||||
|
||||
# Path to your oh-my-zsh installation.
|
||||
export ZSH="$HOME/.oh-my-zsh"
|
||||
|
||||
# Set name of the theme to load --- if set to "random", it will
|
||||
# load a random theme each time oh-my-zsh is loaded, in which case,
|
||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
||||
ZSH_THEME="robbyrussell"
|
||||
|
||||
# Load pywal palette
|
||||
cat ~/.cache/wal/sequences
|
||||
|
||||
# Set list of themes to pick from when loading at random
|
||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
||||
# a theme from this variable instead of looking in $ZSH/themes/
|
||||
# If set to an empty array, this variable will have no effect.
|
||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
||||
|
||||
# Uncomment the following line to use case-sensitive completion.
|
||||
# CASE_SENSITIVE="true"
|
||||
|
||||
# Uncomment the following line to use hyphen-insensitive completion.
|
||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||
# HYPHEN_INSENSITIVE="true"
|
||||
|
||||
# Uncomment one of the following lines to change the auto-update behavior
|
||||
# zstyle ':omz:update' mode disabled # disable automatic updates
|
||||
# zstyle ':omz:update' mode auto # update automatically without asking
|
||||
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
||||
|
||||
# Uncomment the following line to change how often to auto-update (in days).
|
||||
# zstyle ':omz:update' frequency 13
|
||||
|
||||
# Uncomment the following line if pasting URLs and other text is messed up.
|
||||
# DISABLE_MAGIC_FUNCTIONS="true"
|
||||
|
||||
# Uncomment the following line to disable colors in ls.
|
||||
# DISABLE_LS_COLORS="true"
|
||||
|
||||
# Uncomment the following line to disable auto-setting terminal title.
|
||||
# DISABLE_AUTO_TITLE="true"
|
||||
|
||||
# Uncomment the following line to enable command auto-correction.
|
||||
# ENABLE_CORRECTION="true"
|
||||
|
||||
# Uncomment the following line to display red dots whilst waiting for completion.
|
||||
# You can also set it to another string to have that shown instead of the default red dots.
|
||||
# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
|
||||
# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
|
||||
# COMPLETION_WAITING_DOTS="true"
|
||||
|
||||
# Uncomment the following line if you want to disable marking untracked files
|
||||
# under VCS as dirty. This makes repository status check for large repositories
|
||||
# much, much faster.
|
||||
# DISABLE_UNTRACKED_FILES_DIRTY="true"
|
||||
|
||||
# Uncomment the following line if you want to change the command execution time
|
||||
# stamp shown in the history command output.
|
||||
# You can set one of the optional three formats:
|
||||
# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
|
||||
# or set a custom format using the strftime function format specifications,
|
||||
# see 'man strftime' for details.
|
||||
# HIST_STAMPS="mm/dd/yyyy"
|
||||
|
||||
# Would you like to use another custom folder than $ZSH/custom?
|
||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
||||
|
||||
# Which plugins would you like to load?
|
||||
# Standard plugins can be found in $ZSH/plugins/
|
||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||
# Add wisely, as too many plugins slow down shell startup.
|
||||
plugins=(git gh bun npm yarn mise)
|
||||
|
||||
# User configuration
|
||||
|
||||
# export MANPATH="/usr/local/man:$MANPATH"
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
# You may need to manually set your language environment
|
||||
# export LANG=en_US.UTF-8
|
||||
|
||||
# Preferred editor for local and remote sessions
|
||||
# if [[ -n $SSH_CONNECTION ]]; then
|
||||
# export EDITOR='vim'
|
||||
# else
|
||||
# export EDITOR='mvim'
|
||||
# fi
|
||||
|
||||
# Compilation flags
|
||||
# export ARCHFLAGS="-arch x86_64"
|
||||
|
||||
# Set personal aliases, overriding those provided by oh-my-zsh libs,
|
||||
# plugins, and themes. Aliases can be placed here, though oh-my-zsh
|
||||
# users are encouraged to define aliases within the ZSH_CUSTOM folder.
|
||||
# For a full list of active aliases, run `alias`.
|
||||
#
|
||||
# Example aliases
|
||||
# alias zshconfig="mate ~/.zshrc"
|
||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
||||
alias dotfiles="~/dotfiles/"
|
||||
alias nv="nvim"
|
||||
alias pywal="~/dotfiles/.scripts/pywal.sh"
|
||||
|
||||
# Lines configured by zsh-newuser-install
|
||||
HISTFILE=~/.histfile
|
||||
HISTSIZE=50
|
||||
SAVEHIST=1000
|
||||
bindkey -v
|
||||
# End of lines configured by zsh-newuser-install
|
||||
# The following lines were added by compinstall
|
||||
zstyle :compinstall filename '$HOME/.zshrc'
|
||||
|
||||
autoload -Uz compinit
|
||||
compinit
|
||||
# End of lines added by compinstall
|
||||
|
||||
eval "$(mise activate zsh)"
|
||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
source $ZSH/oh-my-zsh.sh
|
||||
|
||||
export EDITOR=nvim
|
||||
|
||||
neofetch --ascii ~/dotfiles/ascii.txt
|
||||
|
||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
87
README.md
Executable file → Normal file
87
README.md
Executable file → Normal file
|
|
@ -1,85 +1,4 @@
|
|||
# Arch Linux Setup
|
||||
# Dotfiles
|
||||
|
||||
This is a work in progress setup for my first Arch Linux install
|
||||
|
||||
## Arch install
|
||||
|
||||
Start by creating a bootable USB from an Arch ISO, you can download from [here](https://archlinux.org/download/)
|
||||
|
||||
Boot into the USB...
|
||||
|
||||
Connect to wifi...
|
||||
|
||||
```
|
||||
iwctl
|
||||
```
|
||||
|
||||
Test connection with `ping google.ca`
|
||||
|
||||
Run the arch install command
|
||||
|
||||
```shell
|
||||
archinstall
|
||||
```
|
||||
|
||||
Running through the options...
|
||||
|
||||
- Disc config: Best-effort
|
||||
- Boot loader: Grub
|
||||
- User account: Create one and give super
|
||||
- Profile: Minimal
|
||||
- Audio: Pipewire
|
||||
- Additional packages: `git`
|
||||
- Network: Copy ISE network configuration
|
||||
|
||||
Install...
|
||||
|
||||
### Enable multilib
|
||||
|
||||
```conf
|
||||
/etc/pacman.conf
|
||||
--------------------
|
||||
[multilib]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
```
|
||||
|
||||
## Packages
|
||||
|
||||
This is a list of packages sorted by the package manager used to install them along with a small description of what they do as well as a link to their website/docs
|
||||
|
||||
### Pacman
|
||||
|
||||
- zsh - Shell
|
||||
- git - Version control
|
||||
- github-cli - Github CLI
|
||||
- lazygit - CLI git client
|
||||
- neofetch - System display
|
||||
- neovim - CLI based editor and IDE
|
||||
- ttf-jetbrains-mono-nerd - Nerd font pack
|
||||
- wget - retrive files over http(s)
|
||||
- curl - same as wget
|
||||
- xclip - Clipboard util
|
||||
- ripgrep - CLI grep tool (used for neovim text search across files)
|
||||
- btop - resource monitor
|
||||
- cmatrix - THE MATRIX
|
||||
- swappy - screenshot tool
|
||||
- spotify - Music App
|
||||
- discord - Messaging
|
||||
- obsidian - markdown and stuff
|
||||
|
||||
#### Hyprland
|
||||
|
||||
- swww - wallpaper animations
|
||||
- hypridle - hyprland idle daemon
|
||||
- hyprlock - hyprland lock screen
|
||||
- pywal - generates color palettes from wallpaper
|
||||
|
||||
### Yay
|
||||
|
||||
- cava - audio visualizer
|
||||
|
||||
### Brew
|
||||
|
||||
- zsh-completions - zsh plugin that adds CLI completions
|
||||
- zsh-autosuggestions - zsh that adds suggestions
|
||||
- asdf - runtime manager (nodejs, python, bun, etc...)
|
||||
- [Arch](<https://github.com/BenjaminPalko/dotfiles/tree/arch(btw)>)
|
||||
- [NixOS](https://github.com/BenjaminPalko/dotfiles/tree/nixos)
|
||||
|
|
|
|||
0
ascii.txt → aperture.txt
Executable file → Normal file
0
ascii.txt → aperture.txt
Executable file → Normal file
4
caprine/.gitignore
vendored
Normal file
4
caprine/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
*
|
||||
!.gitignore
|
||||
!config.json
|
||||
!custom.css
|
||||
43
caprine/config.json
Normal file
43
caprine/config.json
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
{
|
||||
"theme": "system",
|
||||
"privateMode": false,
|
||||
"showPrivateModePrompt": true,
|
||||
"vibrancy": "none",
|
||||
"zoomFactor": 1,
|
||||
"lastWindowState": {
|
||||
"x": 513,
|
||||
"y": 594,
|
||||
"width": 1244,
|
||||
"height": 1358,
|
||||
"isMaximized": false
|
||||
},
|
||||
"menuBarMode": false,
|
||||
"showDockIcon": true,
|
||||
"showTrayIcon": true,
|
||||
"alwaysOnTop": false,
|
||||
"showAlwaysOnTopPrompt": true,
|
||||
"bounceDockOnMessage": false,
|
||||
"showUnreadBadge": true,
|
||||
"showMessageButtons": true,
|
||||
"launchMinimized": false,
|
||||
"flashWindowOnMessage": true,
|
||||
"notificationMessagePreview": true,
|
||||
"block": {
|
||||
"chatSeen": false,
|
||||
"typingIndicator": false,
|
||||
"deliveryReceipt": false
|
||||
},
|
||||
"emojiStyle": "facebook-3-0",
|
||||
"useWorkChat": false,
|
||||
"sidebar": "default",
|
||||
"autoHideMenuBar": true,
|
||||
"autoUpdate": true,
|
||||
"notificationsMuted": false,
|
||||
"callRingtoneMuted": false,
|
||||
"hardwareAcceleration": true,
|
||||
"quitOnWindowClose": false,
|
||||
"keepMeSignedIn": true,
|
||||
"autoplayVideos": true,
|
||||
"isSpellCheckerEnabled": true,
|
||||
"spellCheckerLanguages": []
|
||||
}
|
||||
227
caprine/custom.css
Normal file
227
caprine/custom.css
Normal file
|
|
@ -0,0 +1,227 @@
|
|||
:root {
|
||||
--base: #1e1e2e;
|
||||
--base-ninety: rgb(255 255 255 / 90%);
|
||||
--base-seventy-five: rgb(255 255 255 / 75%);
|
||||
--base-seventy: rgb(255 255 255 / 70%);
|
||||
--base-fifty: rgb(255 255 255 / 50%);
|
||||
--base-fourty: rgb(255 255 255 / 40%);
|
||||
--base-thirty: rgb(255 255 255 / 30%);
|
||||
--base-twenty: rgb(255 255 255 / 20%);
|
||||
--base-ten: rgb(255 255 255 / 10%);
|
||||
--base-nine: rgb(255 255 255 / 9%);
|
||||
--base-five: rgb(255 255 255 / 5%);
|
||||
--container-color: #11111b;
|
||||
--container-dark-color: #181825;
|
||||
--list-header-color: #1e1e2e;
|
||||
--blue: #89b4fa;
|
||||
--white: #fff;
|
||||
}
|
||||
|
||||
html.__fb-dark-mode {
|
||||
--icon-primary-color: #f38ba8;
|
||||
--messenger-card-background: var(--container-dark-color);
|
||||
}
|
||||
|
||||
div.__fb-dark-mode {
|
||||
--messenger-card-background: var(--list-header-color);
|
||||
}
|
||||
|
||||
html.__fb-dark-mode-mode body {
|
||||
color: var(--base-seventy);
|
||||
background: var(--container-color) !important;
|
||||
}
|
||||
|
||||
/* Fixes appearance of "Verify Account" screen text */
|
||||
html.__fb-dark-mode-mode ._3-mr ._3-mt,
|
||||
html.__fb-dark-mode-mode ._3-mr ._3-mu {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
html.__fb-dark-mode-mode ._3v_o, /* Login screen */
|
||||
html.__fb-dark-mode-mode body.UIPage_LoggedOut ._li, /* 2FA screen */
|
||||
html.__fb-dark-mode-mode body.UIPage_LoggedOut ._4-u5 /* 2FA screen */ {
|
||||
background-color: var(--container-dark-color);
|
||||
}
|
||||
|
||||
/* Login title and names */
|
||||
html.__fb-dark-mode-mode ._5hy4,
|
||||
html.__fb-dark-mode-mode ._3403 {
|
||||
color: var(--base-fourty) !important;
|
||||
}
|
||||
|
||||
/* Login inputs */
|
||||
html.__fb-dark-mode-mode ._3v_o ._55r1 {
|
||||
background: var(--base-five);
|
||||
color: var(--base-seventy);
|
||||
}
|
||||
html.__fb-dark-mode-mode ._3v_o ._55r1::-webkit-input-placeholder {
|
||||
color: var(--base-thirty) !important;
|
||||
}
|
||||
|
||||
/* "Keep me signed in" checkbox */
|
||||
html.__fb-dark-mode-mode .uiInputLabelInput {
|
||||
filter: opacity(70%);
|
||||
}
|
||||
|
||||
/* "Keep me signed in" text */
|
||||
html.__fb-dark-mode-mode .uiInputLabelLabel {
|
||||
color: var(--base-fourty) !important;
|
||||
}
|
||||
|
||||
/* 2FA screen modal */
|
||||
html.__fb-dark-mode-mode body.UIPage_LoggedOut ._4-u8 {
|
||||
background: var(--container-color);
|
||||
border-color: var(--base-five) !important;
|
||||
}
|
||||
|
||||
/* 2FA screen modal title */
|
||||
html.__fb-dark-mode-mode body.UIPage_LoggedOut ._2e9n {
|
||||
border-color: var(--base-five);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* 2FA screen modal separator */
|
||||
html.__fb-dark-mode-mode body.UIPage_LoggedOut ._p0k ._5hzs {
|
||||
border-color: var(--base-five);
|
||||
}
|
||||
|
||||
/* 2FA screen modal separators */
|
||||
html.__fb-dark-mode-mode body.UIPage_LoggedOut a {
|
||||
color: var(--blue);
|
||||
}
|
||||
|
||||
/* 2FA screen modal input */
|
||||
html.__fb-dark-mode-mode body.UIPage_LoggedOut input {
|
||||
background: var(--base-ten);
|
||||
border-color: var(--base-ten);
|
||||
color: var(--base-ninety);
|
||||
}
|
||||
|
||||
/* Cookies notification: background */
|
||||
html.__fb-dark-mode-mode ._9o-w ._9o-c {
|
||||
background: var(--container-color) !important;
|
||||
}
|
||||
/* Cookies notification: text */
|
||||
html.__fb-dark-mode-mode ._9o-g {
|
||||
color: var(--base-seventy) !important;
|
||||
}
|
||||
/* Cookies notification: collapsible headers */
|
||||
html.__fb-dark-mode-mode ._9o-l {
|
||||
color: var(--base-seventy) !important;
|
||||
}
|
||||
/* Cookies notification: subheaders */
|
||||
html.__fb-dark-mode-mode ._9si- {
|
||||
color: var(--base-seventy) !important;
|
||||
}
|
||||
/* Cookies notification: hamburger menu */
|
||||
html.__fb-dark-mode-mode
|
||||
._42ft._4jy0._55pi._2agf._4o_4._9o-e._p._4jy3._517h._51sy {
|
||||
background: var(--container-color) !important;
|
||||
}
|
||||
/* Cookies notification: hamburger menu background */
|
||||
html.__fb-dark-mode-mode ._54ng {
|
||||
background: var(--container-color) !important;
|
||||
}
|
||||
/* Cookies notification: hamburger menu text */
|
||||
html.__fb-dark-mode-mode ._54nh {
|
||||
color: var(--base-seventy) !important;
|
||||
}
|
||||
/* Cookies notification: hamburger menu column borders */
|
||||
html.__fb-dark-mode-mode ._54nc {
|
||||
border-color: var(--container-color) !important;
|
||||
}
|
||||
/* Cookies notification: icons */
|
||||
html.__fb-dark-mode-mode .img.sp_ng1YXMZLXub {
|
||||
filter: invert(0.66);
|
||||
}
|
||||
/* Cookies notification: rectangular boxes */
|
||||
html.__fb-dark-mode-mode .pam._9o-n.uiBoxGray {
|
||||
background-color: var(--base-ten) !important;
|
||||
}
|
||||
html.__fb-dark-mode-mode ._9xq0 {
|
||||
color: var(--base-seventy) !important;
|
||||
}
|
||||
|
||||
/* Top bar: App menu button color */
|
||||
/* Top bar: New message button color */
|
||||
.j83agx80.pfnyh3mw .ozuftl9m .a8c37x1j.ms05siws.hwsy1cff.b7h9ocf4 {
|
||||
fill: currentcolor;
|
||||
color: var(--primary-text);
|
||||
}
|
||||
|
||||
/* Chat list: Mute icon */
|
||||
.bp9cbjyn.j83agx80.btwxx1t3 .dlv3wnog.lupvgy83 .a8c37x1j {
|
||||
fill: #11111b;
|
||||
color: var(--primary-text);
|
||||
}
|
||||
|
||||
/* Right sidebar: icons */
|
||||
.x1qhmfi1.x14yjl9h.xudhj91.x18nykt9.xww2gxu.x1fgtraw.x1264ykn.x78zum5.x6s0dn4.xl56j7k
|
||||
svg
|
||||
path {
|
||||
fill: currentcolor;
|
||||
color: var(--primary-text);
|
||||
}
|
||||
|
||||
/* Contact list: delivered icon color */
|
||||
.aahdfvyu [role="grid"] .a8c37x1j.ms05siws.hwsy1cff.b7h9ocf4 {
|
||||
fill: currentcolor;
|
||||
color: var(--primary-text);
|
||||
}
|
||||
|
||||
/* Messenger settings: Privacy & safety icon color */
|
||||
.x1lliihq.x1k90msu.x2h7rmj.x1qfuztq.x198g3q0.xxk0z11.xvy4d1p {
|
||||
fill: currentcolor;
|
||||
color: var(--primary-text);
|
||||
}
|
||||
|
||||
/* Removing top gap */
|
||||
/* TODO: Remove when fixed by fb */
|
||||
.__fb-dark-mode {
|
||||
--header-height: 0 !important;
|
||||
}
|
||||
|
||||
/* Message list: fix for received messages text color in dark mode */
|
||||
/* TODO: Remove when fixed by fb */
|
||||
.__fb-dark-mode .__fb-light-mode {
|
||||
--primary-text: #cdd6f4;
|
||||
}
|
||||
|
||||
/* Radio buttons */
|
||||
.x14yjl9h.xudhj91.x18nykt9.xww2gxu.x13fuv20.xu3j5b3.x1q0q8m5.x26u7qi.xamhcws.xol2nv.xlxy82.x19p7ews.x9f619.x1rg5ohu.x2lah0s.x1n2onr6.x1tz4bnf.xmds5ef.x25epmt.x11y6y4w.xxk0z11.xvy4d1p {
|
||||
--accent: var(--primary-text);
|
||||
}
|
||||
|
||||
/* Backgrounds of various buttons ("Join room", "Visit Group", Audio call, etc.) */
|
||||
/* TODO: Remove when fixed by fb, since -floating should not be here */
|
||||
html.__fb-dark-mode-mode
|
||||
.x14yjl9h.xudhj91.x18nykt9.xww2gxu.x6s0dn4.x972fbf.xcfux6l.x1qhh985.xm0m39n.x9f619.x3nfvp2.xl56j7k.x1n2onr6.x1qhmfi1.xc9qbxq.x14qfxbe,
|
||||
html.__fb-dark-mode-mode
|
||||
.x1n2onr6.x1ja2u2z.x78zum5.x2lah0s.xl56j7k.x6s0dn4.xozqiw3.x1q0g3np.xi112ho.x17zwfj4.x585lrc.x1403ito.x972fbf.xcfux6l.x1qhh985.xm0m39n.x9f619.xn6708d.x1ye3gou.x1qhmfi1.x1r1pt67 {
|
||||
background-color: var(--secondary-button-background-floating) !important;
|
||||
}
|
||||
|
||||
/* Search results: Close button */
|
||||
/* TODO: Remove when fixed by fb, since --always-white is not good here */
|
||||
html.__fb-dark-mode-mode .x14hiurz.x1r1pt67 {
|
||||
background-color: var(--secondary-button-background) !important;
|
||||
}
|
||||
|
||||
/* Attachment background color in Chat Box */
|
||||
/* TODO: Remove when fixed by fb, since #d6d9dd is too bright here */
|
||||
/* Current Background-Color is same style as add attachment button */
|
||||
html.__fb-dark-mode-mode .x1ybostu {
|
||||
background-color: rgba(134 142 153 / 25%);
|
||||
}
|
||||
|
||||
/* Recipient Pills in new message form */
|
||||
/* TODO: Remove when fixed by fb, since #f3f3f4 is too bright here */
|
||||
/* It seems FB uses shades of blue here */
|
||||
html.__fb-dark-mode-mode .x4noic3 {
|
||||
background-color: var(--secondary-button-background);
|
||||
}
|
||||
|
||||
/* Create room icon color */
|
||||
html.__fb-dark-mode-mode .x1p6odiv {
|
||||
color: var(--primary-icon);
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
uniform int bar_width; // bar width (configurable), not used here
|
||||
uniform int bar_spacing; // space bewteen bars (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution
|
||||
|
||||
//colors, configurable in cava config file (r,g,b) (0.0 - 1.0)
|
||||
uniform vec3 bg_color; // background color
|
||||
uniform vec3 fg_color; // foreground color
|
||||
|
||||
uniform int gradient_count;
|
||||
uniform vec3 gradient_colors[8]; // gradient colors
|
||||
|
||||
vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max)
|
||||
{
|
||||
//create color based on fraction of this color and next color
|
||||
float yr = (y - y_min) / (y_max - y_min);
|
||||
return col_1 * (1.0 - yr) + col_2 * yr;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
float x = u_resolution.x * fragCoord.x;
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
//calculate a bar size
|
||||
float bar_size = u_resolution.x / bars_count;
|
||||
|
||||
//the y coordinate and bar values are the same
|
||||
float y = bars[bar];
|
||||
|
||||
// make sure there is a thin line at bottom
|
||||
if (y * u_resolution.y < 1.0)
|
||||
{
|
||||
y = 1.0 / u_resolution.y;
|
||||
}
|
||||
|
||||
//draw the bar up to current height
|
||||
if (y > fragCoord.y)
|
||||
{
|
||||
//make some space between bars basen on settings
|
||||
if (x > (bar + 1) * (bar_size) - bar_spacing)
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gradient_count == 0)
|
||||
{
|
||||
fragColor = vec4(fg_color,1.0);
|
||||
}
|
||||
else
|
||||
{
|
||||
//find which color in the configured gradient we are at
|
||||
int color = int((gradient_count - 1) * fragCoord.y);
|
||||
|
||||
//find where on y this and next color is supposed to be
|
||||
float y_min = color / (gradient_count - 1.0);
|
||||
float y_max = (color + 1.0) / (gradient_count - 1.0);
|
||||
|
||||
//make color
|
||||
fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fragColor = vec4(bg_color,1.0);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
#version 330
|
||||
|
||||
in vec2 fragCoord;
|
||||
out vec4 fragColor;
|
||||
|
||||
// bar values. defaults to left channels first (low to high), then right (high to low).
|
||||
uniform float bars[512];
|
||||
|
||||
uniform int bars_count; // number of bars (left + right) (configurable)
|
||||
|
||||
uniform vec3 u_resolution; // window resolution, not used here
|
||||
|
||||
//colors, configurable in cava config file
|
||||
uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here
|
||||
uniform vec3 fg_color; // foreground color, not used here
|
||||
|
||||
void main()
|
||||
{
|
||||
// find which bar to use based on where we are on the x axis
|
||||
int bar = int(bars_count * fragCoord.x);
|
||||
|
||||
float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0;
|
||||
float y = (bars[bar]) * bar_y;
|
||||
|
||||
float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count;
|
||||
float bar_r = 1.0 - abs((bar_x - 0.5)) * 2;
|
||||
|
||||
bar_r = bar_r * bar_r * 2;
|
||||
|
||||
// set color
|
||||
fragColor.r = fg_color.x * y * bar_r;
|
||||
fragColor.g = fg_color.y * y * bar_r;
|
||||
fragColor.b = fg_color.z * y * bar_r;
|
||||
}
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
#version 330
|
||||
|
||||
|
||||
// Input vertex data, different for all executions of this shader.
|
||||
layout(location = 0) in vec3 vertexPosition_modelspace;
|
||||
|
||||
// Output data ; will be interpolated for each fragment.
|
||||
out vec2 fragCoord;
|
||||
|
||||
void main()
|
||||
{
|
||||
gl_Position = vec4(vertexPosition_modelspace,1);
|
||||
fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0;
|
||||
}
|
||||
7
configuration.nix
Normal file
7
configuration.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
<home-manager/nixos>
|
||||
./nixos/nixos.nix
|
||||
];
|
||||
}
|
||||
48
flake.lock
generated
Normal file
48
flake.lock
generated
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"nodes": {
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1724412708,
|
||||
"narHash": "sha256-tLr1k+UZLVumyqXRU8E5lBtLjsvHSy8e2NiamfkjpYg=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "b18f3ebc4029c22d437e3424014c8597a8b459a0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1724224976,
|
||||
"narHash": "sha256-Z/ELQhrSd7bMzTO8r7NZgi9g5emh+aRKoCdaAv5fiO0=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c374d94f1536013ca8e92341b540eba4c22f9c62",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
33
flake.nix
Normal file
33
flake.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
description = "Benjamin Palko's dotfiles";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ home-manager, nixpkgs, ... }@inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
username = "benjamin";
|
||||
hostname = "nixos";
|
||||
in
|
||||
{
|
||||
# nixos config
|
||||
nixosConfigurations."${hostname}" = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
specialArgs = {
|
||||
inherit inputs;
|
||||
inherit username;
|
||||
inherit hostname;
|
||||
};
|
||||
modules = [
|
||||
./nixos/nixos.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{ networking.hostName = "${hostname}"; }
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
21
home-manager/applications.nix
Normal file
21
home-manager/applications.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# browser
|
||||
firefox
|
||||
vivaldi
|
||||
# messaging
|
||||
discord
|
||||
caprine-bin
|
||||
# game-dev
|
||||
godot_4
|
||||
aseprite
|
||||
# organization
|
||||
obsidian
|
||||
];
|
||||
|
||||
xdg.configFile.Caprine = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ../caprine;
|
||||
recursive = true;
|
||||
};
|
||||
}
|
||||
12
home-manager/git.nix
Normal file
12
home-manager/git.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ ... }:
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Benjamin Palko";
|
||||
userEmail = "Benjaminpalko@hotmail.com";
|
||||
};
|
||||
programs.gh = {
|
||||
enable = true;
|
||||
gitCredentialHelper.enable = true;
|
||||
};
|
||||
}
|
||||
62
home-manager/hyprland/default.nix
Normal file
62
home-manager/hyprland/default.nix
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [ ./gtk.nix ];
|
||||
|
||||
home.pointerCursor = {
|
||||
gtk.enable = true;
|
||||
# x11.enable = true;
|
||||
name = "volantes_cursors";
|
||||
package = pkgs.volantes-cursors;
|
||||
size = 24;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
rofi-wayland
|
||||
swaynotificationcenter
|
||||
volantes-cursors
|
||||
pywal
|
||||
(pkgs.writeShellScriptBin "pywal" ''
|
||||
# -n tells `wal` to skip setting the wallpaper.
|
||||
wal -i ~/Wallpapers/ -n
|
||||
|
||||
# Using feh to tile the wallpaper now.
|
||||
# We grab the wallpaper location from wal's cache so
|
||||
# that this works even when a directory is passed.
|
||||
swww img "$(<"${config.home.homeDirectory}/.cache/wal/wal")" --transition-type wipe --transition-angle 45 --transition-fps 90
|
||||
|
||||
# Copy cava and update config
|
||||
cp ~/.cache/wal/cava-config ~/.config/cava/config && pkill -USR2 cava
|
||||
'')
|
||||
];
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
xdg.configFile = {
|
||||
hypr = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ../../hypr;
|
||||
recursive = true;
|
||||
};
|
||||
rofi = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ../../rofi;
|
||||
recursive = true;
|
||||
};
|
||||
swaync = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ../../swaync;
|
||||
recursive = true;
|
||||
};
|
||||
wal = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ../../wal;
|
||||
recursive = true;
|
||||
};
|
||||
waybar = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ../../waybar;
|
||||
recursive = true;
|
||||
};
|
||||
xfce4 = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ../../xfce4;
|
||||
recursive = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
25
home-manager/hyprland/gtk.nix
Normal file
25
home-manager/hyprland/gtk.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
gtk = {
|
||||
enable = true;
|
||||
gtk3.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
gtk4.extraConfig = {
|
||||
gtk-application-prefer-dark-theme = 1;
|
||||
};
|
||||
theme = {
|
||||
name = "WhiteSur-Dark";
|
||||
package = pkgs.whitesur-gtk-theme.override {
|
||||
colorVariants = [ "Dark" ];
|
||||
opacityVariants = [ "normal" ];
|
||||
darkerColor = true;
|
||||
};
|
||||
};
|
||||
iconTheme = {
|
||||
name = "WhiteSur-dark";
|
||||
package = pkgs.whitesur-icon-theme.override { themeVariants = [ "default" ]; };
|
||||
};
|
||||
};
|
||||
home.sessionVariables.GTK_THEME = "WhiteSur-Dark";
|
||||
}
|
||||
10
home-manager/media.nix
Normal file
10
home-manager/media.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
spotify
|
||||
mplayer
|
||||
];
|
||||
programs.cava = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
55
home-manager/nvim.nix
Normal file
55
home-manager/nvim.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# Languages
|
||||
lua
|
||||
(python3.withPackages (
|
||||
p: with p; [
|
||||
pygobject3
|
||||
gst-python
|
||||
]
|
||||
))
|
||||
# C++
|
||||
meson
|
||||
mesonlsp
|
||||
pkg-config
|
||||
ninja
|
||||
cmake
|
||||
gnumake
|
||||
clang
|
||||
clang-tools
|
||||
# OpenGL
|
||||
glslls
|
||||
fmt
|
||||
fmt.dev
|
||||
glfw-wayland
|
||||
libGL
|
||||
libGL.dev
|
||||
# Other
|
||||
nodejs
|
||||
bun
|
||||
rustc
|
||||
go
|
||||
cargo
|
||||
# Extensions
|
||||
ripgrep
|
||||
xclip
|
||||
fzf
|
||||
nixfmt-rfc-style
|
||||
lazygit
|
||||
];
|
||||
|
||||
xdg.configFile.nvim = {
|
||||
source = config.lib.file.mkOutOfStoreSymlink ../nvim;
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
VCPKG_ROOT = "${pkgs.vcpkg.outPath}/share/vcpkg";
|
||||
};
|
||||
}
|
||||
69
home-manager/terminal.nix
Normal file
69
home-manager/terminal.nix
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
shellIntegration.enableZshIntegration = true;
|
||||
font = {
|
||||
name = "JetBrainsMono NF";
|
||||
size = 11;
|
||||
};
|
||||
settings = {
|
||||
enable_audio_bell = "no";
|
||||
window_margin_width = 10;
|
||||
background_opacity = "0.5";
|
||||
confirm_os_window_close = 0;
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autocd = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
initExtra = ''
|
||||
neofetch --ascii ~/dotfiles/aperture.txt
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
neofetch = "neofetch --ascii ~/dotfiles/aperture.txt";
|
||||
rebuild = "sudo nixos-rebuild switch --flake ~/dotfiles";
|
||||
clean = "nix-store --gc";
|
||||
dotfiles = "cd ~/dotfiles/";
|
||||
nv = "nvim";
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
"git"
|
||||
"gh"
|
||||
"bun"
|
||||
];
|
||||
theme = "robbyrussell";
|
||||
};
|
||||
|
||||
history = {
|
||||
path = "${config.xdg.dataHome}/zsh/history";
|
||||
size = 10000;
|
||||
};
|
||||
};
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
settings = {
|
||||
add_newline = false;
|
||||
};
|
||||
};
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme = "system";
|
||||
};
|
||||
};
|
||||
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
neofetch
|
||||
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
|
||||
];
|
||||
}
|
||||
4
home-manager/yar.nix
Normal file
4
home-manager/yar.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ deluge ];
|
||||
}
|
||||
23
hypr/config/environments/nvidia.conf
Normal file
23
hypr/config/environments/nvidia.conf
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
# -----------------------------------------------------
|
||||
# Environment Variables
|
||||
# name: "Nvidia"
|
||||
# -----------------------------------------------------
|
||||
|
||||
# https://wiki.hyprland.org/Nvidia/
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
}
|
||||
env = NVD_BACKEND,direct
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
env = WLR_NO_HARDWARE_CURSORS,1
|
||||
env = __GL_VRR_ALLOWED,1
|
||||
env = WLR_DRM_NO_ATOMIC,1
|
||||
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,auto
|
||||
|
||||
|
|
@ -1,26 +1,16 @@
|
|||
|
||||
# Lux Keybinds
|
||||
bind = $mainMod, ESCAPE, global, lux:power-menu
|
||||
bind = $mainMod, R, global, lux:launcher
|
||||
bind = $mainMod, M, global, lux:pomodoro
|
||||
bind = $mainMod, W, global, lux:storybook
|
||||
bind = $mainMod, grave, global, lux:configuration
|
||||
|
||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||
|
||||
# Global
|
||||
bind = SUPER, F10, sendshortcut, CTRL, F10, class:^(com\.obsproject\.Studio)$
|
||||
|
||||
# Programs
|
||||
bind = $mainMod, T, exec, $terminal
|
||||
bind = $mainMod, X, killactive,
|
||||
bind = $mainMod, ESCAPE, exec, $powerMenu
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, F, togglefloating,
|
||||
bind = $mainMod, R, exec, $menu
|
||||
bind = $mainMod, P, pseudo, # dwindle
|
||||
bind = $mainMod, V, togglesplit, # dwindle
|
||||
bind = $mainMod, L, exec, $lockScreen # hyprlock
|
||||
bind = $mainMod, period, exec, gnome-characters
|
||||
bind = $mainMod, B, exec, zen-browser
|
||||
bind = $mainMod, period, exec, emote
|
||||
bind = $mainMod, B, exec, firefox
|
||||
bind = $mainMod CTRL, F, fullscreen
|
||||
bind = , PRINT, exec, grim -g "$(slurp)" - | swappy -f -
|
||||
|
||||
|
|
@ -60,12 +50,12 @@ bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
|||
# Scratchpad
|
||||
bind = CTRL SHIFT, S, togglespecialworkspace, magic
|
||||
bind = CTRL $mainMod, S, movetoworkspace, special:magic
|
||||
|
||||
# Terminal
|
||||
bind = CTRL SHIFT, T, togglespecialworkspace, terminal
|
||||
|
||||
bind = CTRL $mainMod, T, movetoworkspace, special:terminal
|
||||
# Music
|
||||
bind = CTRL SHIFT, M, togglespecialworkspace, music
|
||||
bind = CTRL $mainMod, M, movetoworkspace, special:music
|
||||
|
||||
# Scroll through existing workspaces with mainMod + scroll
|
||||
bind = $mainMod, mouse_down, workspace, e+1
|
||||
|
|
@ -88,6 +78,3 @@ bind = , XF86AudioStop, exec,
|
|||
bind = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = , XF86AudioNext, exec, playerctl next
|
||||
|
||||
# Gestures
|
||||
# https://wiki.hypr.land/Configuring/Gestures/
|
||||
gesture = 4, horizontal, workspace
|
||||
35
hypr/config/rules.conf
Normal file
35
hypr/config/rules.conf
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
|
||||
# Example windowrule v1
|
||||
# windowrule = float, ^(kitty)$
|
||||
# Example windowrule v2
|
||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
windowrulev2 = nomaxsize, class:.* # You'll probably like this.
|
||||
# windowrulev2 = opacity 1 0.6, class:.*
|
||||
|
||||
|
||||
# Apps
|
||||
|
||||
windowrule = float, title:rofi
|
||||
|
||||
windowrule = workspace special:terminal, kitty
|
||||
windowrule = workspace special:music, title:^Spotify Premium$
|
||||
windowrulev2 = opacity 0.85 0.8, initialTitle:^Spotify Premium$
|
||||
|
||||
windowrulev2 = workspace 1,class:(discord)
|
||||
|
||||
windowrulev2 = workspace 1,class:(Caprine)
|
||||
windowrule = opacity 0.999, Caprine
|
||||
|
||||
windowrule = workspace 2, firefox
|
||||
windowrule = opacity 0.999, firefox
|
||||
|
||||
windowrulev2 = workspace 4,float,class:(steam)
|
||||
windowrule = workspace 4, class:^(steam_app_*)$
|
||||
|
||||
# Workspaces
|
||||
workspace = 1, persistent:true
|
||||
workspace = 2, persistent:true
|
||||
workspace = 3, persistent:true
|
||||
workspace = 4, persistent:true
|
||||
|
||||
16
hypr/config/startup.conf
Normal file
16
hypr/config/startup.conf
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# Notification Daemon
|
||||
exec-once = bash ~/.config/hypr/scripts/start-swaync.sh
|
||||
# Idle Daemon
|
||||
exec-once = hypridle
|
||||
# Status-bar
|
||||
exec-once = bash ~/.config/hypr/scripts/start-waybar.sh
|
||||
# Emotes
|
||||
exec-once = emote
|
||||
# Wallpaper Daemon
|
||||
exec-once = swww-daemon
|
||||
|
||||
exec-once = [workspace 1 silent] discord --enable-features=UseOzonePlatform --ozone-platform=wayland
|
||||
exec-once = [workspace 1 silent] caprine --enable-features=UseOzonePlatform --ozone-platform=wayland
|
||||
exec-once = [workspace 2 silent] firefox
|
||||
exec-once = [workspace special:music silent] spotify
|
||||
|
||||
|
|
@ -28,8 +28,8 @@ listener {
|
|||
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
|
||||
}
|
||||
|
||||
# listener {
|
||||
# timeout = 1800 # 30min
|
||||
# on-timeout = systemctl suspend # suspend pc
|
||||
# }
|
||||
listener {
|
||||
timeout = 1800 # 30min
|
||||
on-timeout = systemctl suspend # suspend pc
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,19 +1,48 @@
|
|||
|
||||
# #######################################################################################
|
||||
# AUTOGENERATED HYPR CONFIG.
|
||||
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
|
||||
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
|
||||
# #######################################################################################
|
||||
|
||||
#
|
||||
# Please note not all available settings / options are set here.
|
||||
# For a full list, see the wiki
|
||||
#
|
||||
|
||||
#autogenerated = 1 # remove this line to remove the warning
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
monitor=DP-1,2560x1440@144,auto,auto
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
|
||||
# Programs
|
||||
$terminal = alacritty
|
||||
$fileManager = nautilus
|
||||
# Execute your favorite apps at launch
|
||||
# exec-once = waybar & hyprpaper & firefox
|
||||
source = ~/.config/hypr/config/startup.conf
|
||||
|
||||
# PyWal Colors
|
||||
source = ~/.cache/wal/colors-hyprland.conf
|
||||
|
||||
# Source a file (multi-file configs)
|
||||
# source = ~/.config/hypr/myColors.conf
|
||||
|
||||
# Set programs that you use
|
||||
$terminal = kitty
|
||||
$fileManager = Thunar
|
||||
$menu = ~/.config/rofi/scripts/launcher_t1
|
||||
$powerMenu = ~/.config/rofi/scripts/powermenu_t1
|
||||
$lockScreen = hyprlock
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||
$mainMod = SUPER
|
||||
|
||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||
# PC
|
||||
monitor=DP-1,2560x1440@144,auto,auto
|
||||
exec-once=hyprctl setcursor volantes_cursors 24
|
||||
env = XCURSOR_THEME,
|
||||
|
||||
# Laptop
|
||||
monitor=eDP-1,1920x1080@60,auto,1.20
|
||||
source = ~/.config/hypr/config/environments/nvidia.conf
|
||||
source = ~/.config/hypr/config/keybinds.conf
|
||||
source = ~/.config/hypr/config/rules.conf
|
||||
|
||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
||||
input {
|
||||
|
|
@ -36,8 +65,10 @@ general {
|
|||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
gaps_in = 10
|
||||
gaps_out = 10
|
||||
gaps_out = 20
|
||||
border_size = 3
|
||||
col.active_border = $color4 $color13 45deg
|
||||
col.inactive_border = $color0
|
||||
|
||||
layout = dwindle
|
||||
|
||||
|
|
@ -45,6 +76,39 @@ general {
|
|||
allow_tearing = true
|
||||
}
|
||||
|
||||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 10
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 3
|
||||
passes = 1
|
||||
ignore_opacity = true
|
||||
}
|
||||
|
||||
drop_shadow = yes
|
||||
shadow_range = 4
|
||||
shadow_render_power = 3
|
||||
col.shadow = rgba(1a1a1aee)
|
||||
}
|
||||
|
||||
animations {
|
||||
enabled = yes
|
||||
|
||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
||||
dwindle {
|
||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
||||
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||
|
|
@ -55,6 +119,11 @@ master {
|
|||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
||||
}
|
||||
|
||||
gestures {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
workspace_swipe = off
|
||||
}
|
||||
|
||||
misc {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
|
||||
|
|
@ -67,12 +136,3 @@ device {
|
|||
sensitivity = -0.5
|
||||
}
|
||||
|
||||
$hypr = ~/.config/hypr/hyprland
|
||||
|
||||
source = $hypr/animations.conf
|
||||
source = $hypr/colours.conf
|
||||
source = $hypr/decorations.conf
|
||||
source = $hypr/env.conf
|
||||
source = $hypr/execs.conf
|
||||
source = $hypr/keybinds.conf
|
||||
source = $hypr/rules.conf
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
animations {
|
||||
enabled = yes
|
||||
|
||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
||||
|
||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||
|
||||
animation = windows, 1, 7, myBezier
|
||||
animation = windowsOut, 1, 7, default, popin 80%
|
||||
animation = border, 1, 10, default
|
||||
animation = borderangle, 1, 8, default
|
||||
animation = fade, 1, 7, default
|
||||
animation = workspaces, 1, 6, default
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
# PyWal Colors
|
||||
source = ~/.cache/wal/colors-hyprland.conf
|
||||
|
||||
general {
|
||||
col.active_border = $color4 $color13 45deg
|
||||
col.inactive_border = $color0
|
||||
}
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
decoration {
|
||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||
|
||||
rounding = 6
|
||||
|
||||
blur {
|
||||
enabled = true
|
||||
size = 4
|
||||
passes = 1
|
||||
ignore_opacity = true
|
||||
}
|
||||
|
||||
shadow {
|
||||
enabled = true
|
||||
range = 4
|
||||
render_power = 3
|
||||
color = rgba(1a1a1aee)
|
||||
}
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
# -----------------------------------------------------
|
||||
# Environment Variables
|
||||
# -----------------------------------------------------
|
||||
|
||||
# General
|
||||
env = XDG_SESSION_TYPE,wayland
|
||||
env = QT_QPA_PLATFORM,wayland
|
||||
|
||||
# Nvidia
|
||||
# https://wiki.hyprland.org/Nvidia/
|
||||
env = LIBVA_DRIVER_NAME,nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME,nvidia
|
||||
env = NVD_BACKEND,direct
|
||||
|
||||
env = GBM_BACKEND,nvidia-drm
|
||||
env = __GL_VRR_ALLOWED,1
|
||||
|
||||
# Electron
|
||||
env = ELECTRON_OZONE_PLATFORM_HINT,auto
|
||||
|
||||
# Themes
|
||||
env = GTK_THEME,WhiteSur-Dark
|
||||
env = ICON_THEME,WhiteSur-Dark
|
||||
env = COLOR_SCHEME,prefer-dark
|
||||
|
||||
#Cursors
|
||||
cursor {
|
||||
no_hardware_cursors = true
|
||||
}
|
||||
# env = XCURSOR_THEME,Volantes Cursors
|
||||
# env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_THEME,Volantes Cursors
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
exec-once = hyprctl setcursor $cursorTheme $cursorSize
|
||||
# exec-once = gsettings set org.gnome.desktop.interface cursor-theme '$cursorTheme'
|
||||
# exec-once = gsettings set org.gnome.desktop.interface cursor-size $cursorSize
|
||||
|
||||
# Fonts
|
||||
env = FONT_NAME,JetBrainsMono Nerd Font 24
|
||||
env = DOCUMENT_FONT_NAME,Cantarell 24
|
||||
env = MONOSPACE_FONT_NAME,JetBrainsMono Nerd Font 5
|
||||
env = FONT_ANTIALIASING,rgba
|
||||
env = FONT_HINTING,full
|
||||
|
||||
# uwsm/app2unit
|
||||
env = APP2UNIT_SLICES,'a=app-graphical.slice b=background-graphical.slice s=session-graphical.slice'
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
# Key ring
|
||||
exec-once = gnome-keyring-daemon --start --components=secrets
|
||||
|
||||
# Idle Daemon
|
||||
exec-once = hypridle
|
||||
# Lux-shell
|
||||
exec-once = quickshell
|
||||
# Emotes
|
||||
exec-once = emote
|
||||
# Wallpaper Daemon
|
||||
exec-once = swww-daemon
|
||||
|
||||
exec-once = [workspace 1 silent] thunderbird
|
||||
exec-once = [workspace 1 silent] proton-mail --password-store="gnome-libsecret"
|
||||
exec-once = [workspace 2 silent] discord --enable-features=UseOzonePlatform --ozone-platform=wayland
|
||||
exec-once = [workspace 2 silent] signal-desktop --password-store="gnome-libsecret"
|
||||
exec-once = [workspace 3 silent] zen-browser
|
||||
exec-once = [workspace 4 silent] alacritty
|
||||
exec-once = [workspace 5 silent] steam
|
||||
exec-once = [workspace special:terminal silent] alacritty
|
||||
exec-once = [workspace special:music silent] tidal-hifi --enable-features=UseOzonePlatform --ozone-platform=wayland
|
||||
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
||||
windowrule = nomaxsize, class:.* # You'll probably like this.
|
||||
|
||||
# Apps
|
||||
windowrule = idleinhibit fullscreen, class:^(*)$
|
||||
windowrule = idleinhibit fullscreen, title:^(*)$
|
||||
windowrule = idleinhibit fullscreen, fullscreen:1
|
||||
windowrule = float, center, modal:1
|
||||
|
||||
# windowrule = workspace special:terminal, kitty
|
||||
windowrule = workspace special:music, initialClass:tidal-hifi
|
||||
|
||||
windowrule = workspace 1, class:thunderbird
|
||||
windowrule = workspace 2, class:(discord)
|
||||
windowrule = workspace 2,class:(signal)
|
||||
windowrule = opacity 0.999, class:signal
|
||||
windowrule = workspace 3, class:firefox
|
||||
windowrule = opacity 0.999, class:firefox
|
||||
windowrule = workspace 5,float,class:(steam)
|
||||
windowrule = workspace 5, class:^(steam_app_*)$
|
||||
|
||||
windowrule = float, class:org.gnome.Calculator
|
||||
|
||||
# Workspaces
|
||||
workspace = 1, persistent:true
|
||||
workspace = 2, persistent:true
|
||||
workspace = 3, persistent:true
|
||||
workspace = 4, persistent:true
|
||||
workspace = 5, persistent:true
|
||||
|
||||
|
|
@ -1,141 +1,52 @@
|
|||
source = $HOME/.config/hypr/mocha.conf
|
||||
# _ _ _
|
||||
# | |__ _ _ _ __ _ __| | ___ ___| | __
|
||||
# | '_ \| | | | '_ \| '__| |/ _ \ / __| |/ /
|
||||
# | | | | |_| | |_) | | | | (_) | (__| <
|
||||
# |_| |_|\__, | .__/|_| |_|\___/ \___|_|\_\
|
||||
# |___/|_|
|
||||
#
|
||||
|
||||
$primary = rgb(1fb854)
|
||||
$secondary = rgb(1eb88e)
|
||||
$accent = rgb(1fb8ab)
|
||||
$accentAlpha = f5e0dc
|
||||
$neutral = rgb(19362d)
|
||||
$base100 = rgb(1b1717)
|
||||
$base200 = rgb(161212)
|
||||
$base300 = rgb(110d0d)
|
||||
$basecontent = rgb(cac9c9)
|
||||
$basecontentAlpha = cac9c9
|
||||
|
||||
$info = rgb(00b5ff)
|
||||
$success = rgb(00a96e)
|
||||
$warning = rgb(ffbe00)
|
||||
$error = rgb(ff5861)
|
||||
|
||||
$text = $basecontent
|
||||
$textAlpha = $basecontentAlpha
|
||||
$font = JetBrainsMono Nerd Font
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
disable_loading_bar = false
|
||||
hide_cursor = true
|
||||
ignore_empty_input = true
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/.cache/hyprlock/wallpaper
|
||||
reload_cmd = "cp $(cat $HOME/.cache/wal/wal) $HOME/.cache/hyprlock/wallpaper"
|
||||
blur_passes = 1
|
||||
blur_size = 3
|
||||
# color = $base
|
||||
monitor =
|
||||
#path = $HOME/dotfiles/.settings/lockscreen.png # only png supported for now
|
||||
color = rgba(25, 20, 20, 1.0)
|
||||
|
||||
# all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
|
||||
blur_passes = 4 # 0 disables blurring
|
||||
blur_size = 2
|
||||
noise = 0.0117
|
||||
contrast = 0.8916
|
||||
brightness = 0.8172
|
||||
vibrancy = 0.1696
|
||||
vibrancy_darkness = 0.0
|
||||
}
|
||||
|
||||
# LAYOUT
|
||||
label {
|
||||
monitor =
|
||||
shadow_passes = 1
|
||||
text = Layout: $LAYOUT
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = 20, 20
|
||||
halign = left
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
shadow_passes = 1
|
||||
text = cmd[update:1000] date +"%T"
|
||||
color = $text
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
shadow_passes = 1
|
||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = -10, -10
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
monitor =
|
||||
path = $HOME/.face
|
||||
shadow_passes = 1
|
||||
size = 150
|
||||
border_color = $base100
|
||||
border_size = 2
|
||||
position = 0, 60
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# GREETING
|
||||
label {
|
||||
monitor =
|
||||
shadow_passes = 1
|
||||
text = <span foreground="##$textAlpha">Welcome back <span foreground="##$accentAlpha">$USER</span></span>
|
||||
color = $text
|
||||
font_size = 30
|
||||
font_family = $font
|
||||
position = 0, 280
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 60
|
||||
shadow_passes = 1
|
||||
rounding = 20
|
||||
outline_thickness = 0
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = $base100
|
||||
inner_color = $base100
|
||||
font_color = $text
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="##$textAlpha"><i>Input password...</i></span>
|
||||
hide_input = false
|
||||
check_color = $info
|
||||
fail_color = $error
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = $warning
|
||||
position = 0, -90
|
||||
halign = center
|
||||
valign = center
|
||||
monitor =
|
||||
size = 200, 50
|
||||
outline_thickness = 1
|
||||
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
|
||||
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
|
||||
dots_center = true
|
||||
outer_color = rgb(000000)
|
||||
inner_color = rgb(200, 200, 200)
|
||||
font_color = rgb(10, 10, 10)
|
||||
fade_on_empty = true
|
||||
placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
|
||||
hide_input = false
|
||||
position = 0, -20
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# QUOTE
|
||||
label {
|
||||
monitor =
|
||||
shadow_passes = 1
|
||||
text = cmd[update:60000] echo "<i>$(fortune)</i>"
|
||||
color = $text
|
||||
font_size = 12
|
||||
font_family = $font
|
||||
position = 0, 200
|
||||
halign = center
|
||||
valign = bottom
|
||||
monitor =
|
||||
text = Enter your password to unlock
|
||||
color = rgba(200, 200, 200, 1.0)
|
||||
font_size = 25
|
||||
font_family = Noto Sans
|
||||
|
||||
position = 0, 200
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
|
|
|||
11
hypr/scripts/start-swaync.sh
Normal file
11
hypr/scripts/start-swaync.sh
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
CONFIG_FILES="$HOME/.config/swaync/ $HOME/.cache/wal/"
|
||||
|
||||
trap "killall swaync" EXIT
|
||||
swaync &
|
||||
|
||||
while true; do
|
||||
inotifywait -e create,modify -r $CONFIG_FILES
|
||||
swaync-client -R & swaync-client -rs
|
||||
done
|
||||
12
hypr/scripts/start-waybar.sh
Executable file
12
hypr/scripts/start-waybar.sh
Executable file
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
|
||||
CONFIG_FILES="$HOME/.config/waybar/ $HOME/.cache/wal/"
|
||||
|
||||
trap "killall .waybar-wrapped" EXIT
|
||||
|
||||
while true; do
|
||||
sleep 1.6
|
||||
waybar &
|
||||
inotifywait -e create,modify -r $CONFIG_FILES
|
||||
killall .waybar-wrapped
|
||||
done
|
||||
46
install.sh
46
install.sh
|
|
@ -1,46 +0,0 @@
|
|||
#!/bin/bash
|
||||
source .install/includes/library.sh
|
||||
clear
|
||||
|
||||
cat <<"EOF"
|
||||
|
||||
_ _ __ _ _
|
||||
__| | ___ | |_ / _(_) | ___ ___
|
||||
/ _` |/ _ \| __| |_| | |/ _ \/ __|
|
||||
| (_| | (_) | |_| _| | | __/\__ \
|
||||
\__,_|\___/ \__|_| |_|_|\___||___/
|
||||
|
||||
|
||||
EOF
|
||||
echo -e "${NONE}"
|
||||
|
||||
if [ ! -d ~/Development/ ]; then
|
||||
mkdir ~/Development/
|
||||
fi
|
||||
|
||||
# Install package managers
|
||||
source .install/install-yay.sh
|
||||
|
||||
# Symantic links
|
||||
source .install/symlink.sh
|
||||
|
||||
# Install general packages
|
||||
source .install/packages/base.sh
|
||||
source .install/packages/shell.sh
|
||||
source .install/packages/applications.sh
|
||||
# source .install/packages/hyprland.sh
|
||||
|
||||
echo "Installing pacman packages..."
|
||||
_installPackagesPacman "${packagesPacman[@]}"
|
||||
|
||||
echo "Installing yay packages..."
|
||||
_installPackagesYay "${packagesYay[@]}"
|
||||
|
||||
# oh-my-zsh
|
||||
source .install/install-oh-my-zsh.sh
|
||||
|
||||
# Set Shell
|
||||
source .scripts/set-shell.sh
|
||||
|
||||
# Add asdf plugins
|
||||
source .install/add-asdf-plugins.sh
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{
|
||||
"palette": {
|
||||
"primary": "",
|
||||
"primarycontent": "",
|
||||
"secondary": "",
|
||||
"secondarycontent": "",
|
||||
"accent": "",
|
||||
"accentcontent": "",
|
||||
"neutral": "",
|
||||
"neutralcontent": "",
|
||||
"base100": "",
|
||||
"base200": "",
|
||||
"base300": "",
|
||||
"basecontent": "",
|
||||
"info": "",
|
||||
"infocontent": "",
|
||||
"success": "",
|
||||
"successcontent": "",
|
||||
"warning": "",
|
||||
"warningcontent": "",
|
||||
"error": "",
|
||||
"errorcontent": "",
|
||||
"radiusSelector": "",
|
||||
"radiusField": "",
|
||||
"radiusBox": "",
|
||||
"sizeSelector": "",
|
||||
"sizeField": "",
|
||||
"border": ""
|
||||
}
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
{
|
||||
"powermenu": {
|
||||
"actions": [
|
||||
{
|
||||
"text": " Logout",
|
||||
"command": "hyprctl dispatch exit"
|
||||
},
|
||||
{
|
||||
"text": " Reboot",
|
||||
"command": "systemctl reboot"
|
||||
},
|
||||
{
|
||||
"text": " Shutdown",
|
||||
"command": "systemctl poweroff"
|
||||
}
|
||||
]
|
||||
},
|
||||
"wallpaper": {
|
||||
"directory": "~/Wallpapers/"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
{
|
||||
"primary": "#605dff",
|
||||
"primarycontent": "#edf1fe",
|
||||
"secondary": "#f43098",
|
||||
"secondarycontent": "#f9e4f0",
|
||||
"accent": "#00d3bb",
|
||||
"accentcontent": "#084d49",
|
||||
"neutral": "#09090b",
|
||||
"neutralcontent": "#e4e4e7",
|
||||
"base100": "#1d232a",
|
||||
"base200": "#191e24",
|
||||
"base300": "#15191e",
|
||||
"basecontent": "#ecf9ff",
|
||||
"info": "#00bafe",
|
||||
"infocontent": "#042e49",
|
||||
"success": "#00d390",
|
||||
"successcontent": "#004c39",
|
||||
"warning": "#fcb700",
|
||||
"warningcontent": "#793205",
|
||||
"error": "#ff627d",
|
||||
"errorcontent": "#4d0218",
|
||||
"radiusSelector": "8",
|
||||
"radiusField": "4",
|
||||
"radiusBox": "8",
|
||||
"sizeSelector": "3",
|
||||
"sizeField": "3",
|
||||
"border": "2"
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"primary": "#1fb854",
|
||||
"primarycontent": "#000000",
|
||||
"secondary": "#1eb88e",
|
||||
"secondarycontent": "#000c07",
|
||||
"accent": "#1fb8ab",
|
||||
"accentcontent": "#010c0b",
|
||||
"neutral": "#19362d",
|
||||
"neutralcontent": "#cdd3d1",
|
||||
"base100": "#1b1717",
|
||||
"base200": "#161212",
|
||||
"base300": "#110d0d",
|
||||
"basecontent": "#cac9c9",
|
||||
"info": "#00b5ff",
|
||||
"infocontent": "#000000",
|
||||
"success": "#00a96e",
|
||||
"successcontent": "#000000",
|
||||
"warning": "#ffbe00",
|
||||
"warningcontent": "#000000",
|
||||
"error": "#ff5861",
|
||||
"errorcontent": "#000000"
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"primary": "#422ad5",
|
||||
"primarycontent": "#e0e7ff",
|
||||
"secondary": "#f43098",
|
||||
"secondarycontent": "#f9e4f0",
|
||||
"accent": "#00d3bb",
|
||||
"accentcontent": "#084d49",
|
||||
"neutral": "#09090b",
|
||||
"neutralcontent": "#e4e4e7",
|
||||
"base100": "#ffffff",
|
||||
"base200": "#f8f8f8",
|
||||
"base300": "#eeeeee",
|
||||
"basecontent": "#18181b",
|
||||
"info": "#00bafe",
|
||||
"infocontent": "#042e49",
|
||||
"success": "#00d390",
|
||||
"successcontent": "#004c39",
|
||||
"warning": "#fcb700",
|
||||
"warningcontent": "#793205",
|
||||
"error": "#ff627d",
|
||||
"errorcontent": "#4d0218"
|
||||
}
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"primary": "#5e81ac",
|
||||
"primarycontent": "#03060b",
|
||||
"secondary": "#81a1c1",
|
||||
"secondarycontent": "#06090d",
|
||||
"accent": "#88c0d0",
|
||||
"accentcontent": "#070d10",
|
||||
"neutral": "#4c566a",
|
||||
"neutralcontent": "#d8dee9",
|
||||
"base100": "#eceff4",
|
||||
"base200": "#e5e9f0",
|
||||
"base300": "#d8dee9",
|
||||
"basecontent": "#2e3440",
|
||||
"info": "#b48ead",
|
||||
"infocontent": "#0c070b",
|
||||
"success": "#a3be8d",
|
||||
"successcontent": "#0a0d07",
|
||||
"warning": "#ebcb8b",
|
||||
"warningcontent": "#130f07",
|
||||
"error": "#bf616a",
|
||||
"errorcontent": "#0d0304"
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
[tools]
|
||||
go = "latest"
|
||||
node = "20"
|
||||
rust = "latest"
|
||||
bun = "latest"
|
||||
dotnet = "8"
|
||||
java = "latest"
|
||||
8
nixos/devices.nix
Normal file
8
nixos/devices.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
hardware.opentabletdriver = {
|
||||
enable = true;
|
||||
package = pkgs.opentabletdriver;
|
||||
daemon.enable = true;
|
||||
};
|
||||
}
|
||||
8
nixos/gaming.nix
Normal file
8
nixos/gaming.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
|
||||
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
|
||||
};
|
||||
}
|
||||
41
nixos/hardware-configuration.nix
Normal file
41
nixos/hardware-configuration.nix
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/47f6ac24-4dbc-47d9-bc54-c64509be4e61";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/12CE-A600";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0077" "dmask=0077" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/0355621d-f9ea-485a-8954-d85cd485d475"; }
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
13
nixos/home.nix
Normal file
13
nixos/home.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
nix.settings = {
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
warn-dirty = false;
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
programs.home-manager.enable = true;
|
||||
}
|
||||
44
nixos/hyprland.nix
Normal file
44
nixos/hyprland.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
programs.xwayland = {
|
||||
enable = true;
|
||||
package = pkgs.xwayland;
|
||||
};
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
programs.hyprlock.enable = true;
|
||||
services.hypridle.enable = true;
|
||||
programs.thunar = {
|
||||
enable = true;
|
||||
plugins = with pkgs.xfce; [
|
||||
thunar-archive-plugin
|
||||
thunar-volman
|
||||
];
|
||||
};
|
||||
services.gvfs.enable = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
xarchiver
|
||||
xwayland
|
||||
xwaylandvideobridge
|
||||
egl-wayland
|
||||
# Clipboard
|
||||
wl-clipboard
|
||||
cliphist
|
||||
# Notifications
|
||||
inotify-tools
|
||||
# Wallpaper
|
||||
swww
|
||||
# Emoji
|
||||
emote
|
||||
# Screenshots
|
||||
grim
|
||||
slurp
|
||||
swappy
|
||||
];
|
||||
|
||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||
}
|
||||
14
nixos/media.nix
Normal file
14
nixos/media.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ ... }:
|
||||
{
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
alsa.enable = true;
|
||||
wireplumber.enable = true;
|
||||
};
|
||||
services.playerctld.enable = true;
|
||||
services.plex = {
|
||||
enable = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
}
|
||||
13
nixos/network.nix
Normal file
13
nixos/network.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ ... }:
|
||||
{
|
||||
# networking.hostName = "nixos"; # Define your hostname.
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Open ports in the firewall.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
# Or disable the firewall altogether.
|
||||
# networking.firewall.enable = false;
|
||||
}
|
||||
95
nixos/nixos.nix
Normal file
95
nixos/nixos.nix
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
###############################################################################
|
||||
# Benjamin's
|
||||
# NixOS Configuration
|
||||
###############################################################################
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
username = "benjamin";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# Generated
|
||||
./hardware-configuration.nix
|
||||
# Custom
|
||||
./system.nix
|
||||
./network.nix
|
||||
./nvidia.nix
|
||||
./sddm.nix
|
||||
./services.nix
|
||||
./devices.nix
|
||||
./security.nix
|
||||
./shell.nix
|
||||
./hyprland.nix
|
||||
./media.nix
|
||||
./gaming.nix
|
||||
];
|
||||
|
||||
nixpkgs.config.permittedInsecurePackages = [ "electron-27.3.11" ];
|
||||
|
||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||
users.users.${username} = {
|
||||
isNormalUser = true;
|
||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
||||
};
|
||||
|
||||
home-manager = {
|
||||
backupFileExtension = "backup";
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = {
|
||||
# inherit inputs;
|
||||
};
|
||||
users.${username} = {
|
||||
home.username = username;
|
||||
home.homeDirectory = "/home/${username}";
|
||||
imports = [
|
||||
../home-manager/git.nix
|
||||
../home-manager/hyprland
|
||||
../home-manager/media.nix
|
||||
../home-manager/nvim.nix
|
||||
../home-manager/terminal.nix
|
||||
../home-manager/yar.nix
|
||||
../home-manager/applications.nix
|
||||
./home.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
# List packages installed in system profile. To search, run:
|
||||
# $ nix search wget
|
||||
environment.systemPackages = with pkgs; [
|
||||
# System
|
||||
gcc
|
||||
cmake
|
||||
unzip
|
||||
ffmpeg
|
||||
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
wget
|
||||
killall
|
||||
];
|
||||
|
||||
# Copy the NixOS configuration file and link it from the resulting system
|
||||
# (/run/current-system/configuration.nix). This is useful in case you
|
||||
# accidentally delete configuration.nix.
|
||||
# system.copySystemConfiguration = true;
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "24.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
42
nixos/nvidia.nix
Normal file
42
nixos/nvidia.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ config, pkgs, ... }:
|
||||
{
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
boot.kernelParams = [
|
||||
"nvidia_drm.fbdev=1"
|
||||
"nvidia.NVreg_PreserveVideoMemoryAllocations=1"
|
||||
];
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [ nvidia-vaapi-driver ];
|
||||
};
|
||||
hardware.nvidia = {
|
||||
# Modesetting is required.
|
||||
modesetting.enable = true;
|
||||
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||
# of just the bare essentials.
|
||||
powerManagement.enable = false;
|
||||
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false;
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.production;
|
||||
};
|
||||
}
|
||||
12
nixos/sddm.nix
Normal file
12
nixos/sddm.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [ sddm-chili-theme ];
|
||||
# services.xserver.enable = true;
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
theme = "chili";
|
||||
# package = pkgs.kdePackages.sddm;
|
||||
package = pkgs.libsForQt5.sddm;
|
||||
wayland.enable = true;
|
||||
};
|
||||
}
|
||||
4
nixos/security.nix
Normal file
4
nixos/security.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{ ... }:
|
||||
{
|
||||
security.polkit.enable = true;
|
||||
}
|
||||
5
nixos/services.nix
Normal file
5
nixos/services.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{ ... }:
|
||||
{
|
||||
# SSH
|
||||
services.openssh.enable = true;
|
||||
}
|
||||
10
nixos/shell.nix
Normal file
10
nixos/shell.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
environment.shells = with pkgs; [ zsh ];
|
||||
programs.zsh.enable = true;
|
||||
users.defaultUserShell = pkgs.zsh;
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [ stdenv.cc.cc ];
|
||||
};
|
||||
}
|
||||
20
nixos/system.nix
Normal file
20
nixos/system.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ ... }:
|
||||
{
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nix.settings = {
|
||||
experimental-features = "nix-command flakes";
|
||||
auto-optimise-store = true;
|
||||
};
|
||||
|
||||
# Select internationalisation properties.
|
||||
# i18n.defaultLocale = "en_US.UTF-8";
|
||||
# console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
# keyMap = "us";
|
||||
# useXkbConfig = true; # use xkb.options in tty.
|
||||
# };
|
||||
|
||||
time.timeZone = "Canada/Eastern";
|
||||
}
|
||||
1
nvim
1
nvim
|
|
@ -1 +0,0 @@
|
|||
Subproject commit cb60a3cd51f58ea6a8e0e2aa6cd576c846cd017c
|
||||
8
nvim/.gitignore
vendored
Normal file
8
nvim/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
tt.*
|
||||
.tests
|
||||
doc/tags
|
||||
debug
|
||||
.repro
|
||||
foo.*
|
||||
*.log
|
||||
data
|
||||
15
nvim/.neoconf.json
Normal file
15
nvim/.neoconf.json
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
201
nvim/LICENSE
Normal file
201
nvim/LICENSE
Normal file
|
|
@ -0,0 +1,201 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
4
nvim/README.md
Normal file
4
nvim/README.md
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# 💤 LazyVim
|
||||
|
||||
A starter template for [LazyVim](https://github.com/LazyVim/LazyVim).
|
||||
Refer to the [documentation](https://lazyvim.github.io/installation) to get started.
|
||||
2
nvim/init.lua
Normal file
2
nvim/init.lua
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
-- bootstrap lazy.nvim, LazyVim and your plugins
|
||||
require("config.lazy")
|
||||
81
nvim/lazy-lock.json
Normal file
81
nvim/lazy-lock.json
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
{
|
||||
"LazyVim": { "branch": "main", "commit": "12818a6cb499456f4903c5d8e68af43753ebc869" },
|
||||
"SchemaStore.nvim": { "branch": "main", "commit": "0d18cb5f8faf160335b4ed4699b6b35c616de5b9" },
|
||||
"bufferline.nvim": { "branch": "main", "commit": "0b2fd861eee7595015b6561dade52fb060be10c4" },
|
||||
"catppuccin": { "branch": "main", "commit": "18bab5ec4c782cdf7d7525dbe89c60bfa02fc195" },
|
||||
"clangd_extensions.nvim": { "branch": "main", "commit": "a8500531c4ed3a207e744a374ea038744a0f93eb" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-git": { "branch": "main", "commit": "74a8f919cb2e4627ae2407e6cf845aac21cded41" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"conform.nvim": { "branch": "master", "commit": "42b53fcb83fd8d597e1a1dc08f6db72de58f4f46" },
|
||||
"dashboard-nvim": { "branch": "master", "commit": "fabf5feec96185817c732d47d363f34034212685" },
|
||||
"flash.nvim": { "branch": "main", "commit": "ec0bf2842189f65f60fd40bf3557cac1029cc932" },
|
||||
"flit.nvim": { "branch": "main", "commit": "1ef72de6a02458d31b10039372c8a15ab8989e0d" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
||||
"fzf-lua": { "branch": "main", "commit": "30fa904d5a614051c943a87aa15e14d69aa0138f" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "375c44bdfdde25585466a966f00c2e291db74f2d" },
|
||||
"grug-far.nvim": { "branch": "main", "commit": "85cadf849bdb22540c36da2034d21de0b37c0952" },
|
||||
"gruvbox.nvim": { "branch": "main", "commit": "7a1b23e4edf73a39642e77508ee6b9cbb8c60f9e" },
|
||||
"harpoon": { "branch": "harpoon2", "commit": "0378a6c428a0bed6a2781d459d7943843f374bce" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "dddb5d21811c319eb6e51a993d8fb44b193aae3f" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
|
||||
"leap.nvim": { "branch": "main", "commit": "c6bfb191f1161fbabace1f36f578a20ac6c7642c" },
|
||||
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
|
||||
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
|
||||
"markdown-preview.nvim": { "branch": "master", "commit": "a923f5fc5ba36a3b17e289dc35dc17f66d0548ee" },
|
||||
"markdown.nvim": { "branch": "main", "commit": "cd0a5ad8c77c3754d02437048bc0bb604a2fe268" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1c55991321d1a861537e32446affc5de5d9a6eaf" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "8b9363d83b5d779813cdd2819b8308651cec2a09" },
|
||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
||||
"mini.ai": { "branch": "main", "commit": "a9b992b13d22a8db8df6beac25afa59a10b5584d" },
|
||||
"mini.animate": { "branch": "main", "commit": "320fb35460238c436407cd779f63abad98e84870" },
|
||||
"mini.comment": { "branch": "main", "commit": "03c13e37318bdb18481311c0ac1adc9ed731caf1" },
|
||||
"mini.diff": { "branch": "main", "commit": "d58f9cb13400aedc5b5a0ef70fcdf31871ba2ee6" },
|
||||
"mini.hipatterns": { "branch": "main", "commit": "1811b0661721285fc83494d2e687d538fb3ddac8" },
|
||||
"mini.icons": { "branch": "main", "commit": "fe63fe080e76d80713557e5f0c65bc15b14b152d" },
|
||||
"mini.indentscope": { "branch": "main", "commit": "d2e7b5f0260789c325f92ab3421ff9884ea01842" },
|
||||
"mini.pairs": { "branch": "main", "commit": "927d19cbdd0e752ab1c7eed87072e71d2cd6ff51" },
|
||||
"mini.surround": { "branch": "main", "commit": "d8913ed23be0a1a4585ae34414821cc343a46174" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "206241e451c12f78969ff5ae53af45616ffc9b72" },
|
||||
"neotest": { "branch": "master", "commit": "32ff2ac21135a372a42b38ae131e531e64833bd3" },
|
||||
"neotest-dotnet": { "branch": "main", "commit": "03509791912eaeac9f993f7cf49e170eca06a8bc" },
|
||||
"neotest-golang": { "branch": "main", "commit": "baa2cf4be671a368c6b75eccbc78672df8b0c124" },
|
||||
"noice.nvim": { "branch": "main", "commit": "448bb9c524a7601035449210838e374a30153172" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "cfa65d86e21eeb60544d5e823f6db43941322a53" },
|
||||
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
|
||||
"nvim-dap": { "branch": "master", "commit": "281a2e4cd1e7a17cea7ecb1745d84a8ab1249925" },
|
||||
"nvim-dap-go": { "branch": "main", "commit": "5511788255c92bdd845f8d9690f88e2e0f0ff9f2" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" },
|
||||
"nvim-dap-virtual-text": { "branch": "master", "commit": "484995d573c0f0563f6a66ebdd6c67b649489615" },
|
||||
"nvim-lint": { "branch": "master", "commit": "debabca63c0905b59ce596a55a8e33eafdf66342" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "d4814330b207a4e05ba9515e453b0e87f20357ec" },
|
||||
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
||||
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
|
||||
"nvim-snippets": { "branch": "main", "commit": "56b4052f71220144689caaa2e5b66222ba5661eb" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "1e860567fbc19f117a03c0d2c46dcc01325c1b8b" },
|
||||
"nvim-treesitter-context": { "branch": "master", "commit": "0f3332788e0bd37716fbd25f39120dcfd557c90f" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "ced6375723b20616282f9f6a1018a63ae19b106a" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "0cb76eea80e9c73b88880f0ca78fbd04c5bdcac7" },
|
||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "375c2d86cee6674afd75b4f727ce3a80065552f7" },
|
||||
"omnisharp-extended-lsp.nvim": { "branch": "main", "commit": "aad7bf06b4ca0de816b919d475a75b30f5f62b61" },
|
||||
"one-small-step-for-vimkind": { "branch": "main", "commit": "0f0d5bc67786c36edc2cb6fb5faa5c09dd1a6e10" },
|
||||
"outline.nvim": { "branch": "main", "commit": "b47514b8f4ae3207c499a69eec05c29cf2182af8" },
|
||||
"overseer.nvim": { "branch": "master", "commit": "236e60cdac6410dd95ea5cecafdb801a304d6a41" },
|
||||
"persistence.nvim": { "branch": "main", "commit": "f6aad7dde7fcf54148ccfc5f622c6d5badd0cc3d" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "ec289423a1693aeae6cd0d503bac2856af74edaa" },
|
||||
"refactoring.nvim": { "branch": "master", "commit": "c406fc5fb4d7ba5fce7b668637075fad6e75e9f8" },
|
||||
"tailwindcss-colorizer-cmp.nvim": { "branch": "main", "commit": "3d3cd95e4a4135c250faf83dd5ed61b8e5502b86" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "8f45f353dc3649cb9b44cecda96827ea88128584" },
|
||||
"tokyonight.nvim": { "branch": "main", "commit": "b0e7c7382a7e8f6456f2a95655983993ffda745e" },
|
||||
"trouble.nvim": { "branch": "main", "commit": "6efc446226679fda0547c0fd6a7892fd5f5b15d8" },
|
||||
"ts-comments.nvim": { "branch": "main", "commit": "98d7d4dec0af1312d38e288f800bbf6ff562b6ab" },
|
||||
"vim-dadbod": { "branch": "master", "commit": "7888cb7164d69783d3dce4e0283decd26b82538b" },
|
||||
"vim-dadbod-completion": { "branch": "master", "commit": "880f7e9f2959e567c718d52550f9fae1aa07aa81" },
|
||||
"vim-dadbod-ui": { "branch": "master", "commit": "0f51d8de368c8c6220973e8acd156d17da746f4c" },
|
||||
"vim-repeat": { "branch": "master", "commit": "65846025c15494983dafe5e3b46c8f88ab2e9635" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" },
|
||||
"yanky.nvim": { "branch": "main", "commit": "73215b77d22ebb179cef98e7e1235825431d10e4" }
|
||||
}
|
||||
42
nvim/lazyvim.json
Normal file
42
nvim/lazyvim.json
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"extras": [
|
||||
"lazyvim.plugins.extras.coding.mini-comment",
|
||||
"lazyvim.plugins.extras.coding.mini-surround",
|
||||
"lazyvim.plugins.extras.coding.yanky",
|
||||
"lazyvim.plugins.extras.dap.core",
|
||||
"lazyvim.plugins.extras.dap.nlua",
|
||||
"lazyvim.plugins.extras.editor.fzf",
|
||||
"lazyvim.plugins.extras.editor.harpoon2",
|
||||
"lazyvim.plugins.extras.editor.leap",
|
||||
"lazyvim.plugins.extras.editor.mini-diff",
|
||||
"lazyvim.plugins.extras.editor.outline",
|
||||
"lazyvim.plugins.extras.editor.overseer",
|
||||
"lazyvim.plugins.extras.editor.refactoring",
|
||||
"lazyvim.plugins.extras.formatting.black",
|
||||
"lazyvim.plugins.extras.formatting.prettier",
|
||||
"lazyvim.plugins.extras.lang.docker",
|
||||
"lazyvim.plugins.extras.lang.git",
|
||||
"lazyvim.plugins.extras.lang.go",
|
||||
"lazyvim.plugins.extras.lang.json",
|
||||
"lazyvim.plugins.extras.lang.markdown",
|
||||
"lazyvim.plugins.extras.lang.nix",
|
||||
"lazyvim.plugins.extras.lang.omnisharp",
|
||||
"lazyvim.plugins.extras.lang.sql",
|
||||
"lazyvim.plugins.extras.lang.tailwind",
|
||||
"lazyvim.plugins.extras.lang.toml",
|
||||
"lazyvim.plugins.extras.lang.typescript",
|
||||
"lazyvim.plugins.extras.lang.yaml",
|
||||
"lazyvim.plugins.extras.linting.eslint",
|
||||
"lazyvim.plugins.extras.lsp.none-ls",
|
||||
"lazyvim.plugins.extras.test.core",
|
||||
"lazyvim.plugins.extras.ui.mini-animate",
|
||||
"lazyvim.plugins.extras.ui.mini-indentscope",
|
||||
"lazyvim.plugins.extras.ui.treesitter-context",
|
||||
"lazyvim.plugins.extras.util.dot",
|
||||
"lazyvim.plugins.extras.util.mini-hipatterns"
|
||||
],
|
||||
"news": {
|
||||
"NEWS.md": "6520"
|
||||
},
|
||||
"version": 6
|
||||
}
|
||||
3
nvim/lua/config/autocmds.lua
Normal file
3
nvim/lua/config/autocmds.lua
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
-- Autocmds are automatically loaded on the VeryLazy event
|
||||
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
||||
-- Add any additional autocmds here
|
||||
3
nvim/lua/config/keymaps.lua
Normal file
3
nvim/lua/config/keymaps.lua
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
-- Keymaps are automatically loaded on the VeryLazy event
|
||||
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
|
||||
-- Add any additional keymaps here
|
||||
50
nvim/lua/config/lazy.lua
Normal file
50
nvim/lua/config/lazy.lua
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
if not (vim.uv or vim.loop).fs_stat(lazypath) then
|
||||
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
|
||||
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
|
||||
if vim.v.shell_error ~= 0 then
|
||||
vim.api.nvim_echo({
|
||||
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
|
||||
{ out, "WarningMsg" },
|
||||
{ "\nPress any key to exit..." },
|
||||
}, true, {})
|
||||
vim.fn.getchar()
|
||||
os.exit(1)
|
||||
end
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
spec = {
|
||||
-- add LazyVim and import its plugins
|
||||
{ "LazyVim/LazyVim", import = "lazyvim.plugins" },
|
||||
-- import/override with your plugins
|
||||
{ import = "plugins" },
|
||||
},
|
||||
defaults = {
|
||||
-- By default, only LazyVim plugins will be lazy-loaded. Your custom plugins will load during startup.
|
||||
-- If you know what you're doing, you can set this to `true` to have all your custom plugins lazy-loaded by default.
|
||||
lazy = false,
|
||||
-- It's recommended to leave version=false for now, since a lot the plugin that support versioning,
|
||||
-- have outdated releases, which may break your Neovim install.
|
||||
version = false, -- always use the latest git commit
|
||||
-- version = "*", -- try installing the latest stable version for plugins that support semver
|
||||
},
|
||||
install = { colorscheme = { "tokyonight", "habamax" } },
|
||||
checker = { enabled = true }, -- automatically check for plugin updates
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
-- "matchit",
|
||||
-- "matchparen",
|
||||
-- "netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"tutor",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
3
nvim/lua/config/options.lua
Normal file
3
nvim/lua/config/options.lua
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
-- Options are automatically loaded before lazy.nvim startup
|
||||
-- Default options that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/options.lua
|
||||
-- Add any additional options here
|
||||
93
nvim/lua/plugins/clang.lua
Normal file
93
nvim/lua/plugins/clang.lua
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = { ensure_installed = { "cpp" } },
|
||||
},
|
||||
{
|
||||
"p00f/clangd_extensions.nvim",
|
||||
lazy = true,
|
||||
config = function() end,
|
||||
opts = {
|
||||
inlay_hints = {
|
||||
inline = false,
|
||||
},
|
||||
ast = {
|
||||
--These require codicons (https://github.com/microsoft/vscode-codicons)
|
||||
role_icons = {
|
||||
type = "",
|
||||
declaration = "",
|
||||
expression = "",
|
||||
specifier = "",
|
||||
statement = "",
|
||||
["template argument"] = "",
|
||||
},
|
||||
kind_icons = {
|
||||
Compound = "",
|
||||
Recovery = "",
|
||||
TranslationUnit = "",
|
||||
PackExpansion = "",
|
||||
TemplateTypeParm = "",
|
||||
TemplateTemplateParm = "",
|
||||
TemplateParamObject = "",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
servers = {
|
||||
-- Ensure mason installs the server
|
||||
clangd = {
|
||||
mason = false,
|
||||
keys = {
|
||||
{ "<leader>ch", "<cmd>ClangdSwitchSourceHeader<cr>", desc = "Switch Source/Header (C/C++)" },
|
||||
},
|
||||
root_dir = function(fname)
|
||||
return require("lspconfig.util").root_pattern(
|
||||
"Makefile",
|
||||
"configure.ac",
|
||||
"configure.in",
|
||||
"config.h.in",
|
||||
"meson.build",
|
||||
"meson_options.txt",
|
||||
"build.ninja"
|
||||
)(fname) or require("lspconfig.util").root_pattern("compile_commands.json", "compile_flags.txt")(
|
||||
fname
|
||||
) or require("lspconfig.util").find_git_ancestor(fname)
|
||||
end,
|
||||
capabilities = {
|
||||
offsetEncoding = { "utf-16" },
|
||||
},
|
||||
cmd = {
|
||||
"clangd",
|
||||
"--background-index",
|
||||
"--clang-tidy",
|
||||
"--header-insertion=iwyu",
|
||||
"--completion-style=detailed",
|
||||
"--function-arg-placeholders",
|
||||
"--fallback-style=llvm",
|
||||
},
|
||||
init_options = {
|
||||
usePlaceholders = true,
|
||||
completeUnimported = true,
|
||||
clangdFileStatus = true,
|
||||
},
|
||||
},
|
||||
},
|
||||
setup = {
|
||||
clangd = function(_, opts)
|
||||
local clangd_ext_opts = LazyVim.opts("clangd_extensions.nvim")
|
||||
require("clangd_extensions").setup(vim.tbl_deep_extend("force", clangd_ext_opts or {}, { server = opts }))
|
||||
return false
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"nvim-cmp",
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sorting.comparators, 1, require("clangd_extensions.cmp_scores"))
|
||||
end,
|
||||
},
|
||||
}
|
||||
17
nvim/lua/plugins/colorscheme.lua
Normal file
17
nvim/lua/plugins/colorscheme.lua
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
return {
|
||||
{ "ellisonleao/gruvbox.nvim" },
|
||||
{ "catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
priority = 1000,
|
||||
opts = { flavour = "mocha",
|
||||
--transparent_background = true,
|
||||
},
|
||||
},
|
||||
-- Configure LazyVim to load gruvbox
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "catppuccin",
|
||||
},
|
||||
}
|
||||
}
|
||||
193
nvim/lua/plugins/example.lua
Normal file
193
nvim/lua/plugins/example.lua
Normal file
|
|
@ -0,0 +1,193 @@
|
|||
-- since this is just an example spec, don't actually load anything here and return an empty spec
|
||||
-- stylua: ignore
|
||||
if true then return {} end
|
||||
|
||||
-- every spec file under the "plugins" directory will be loaded automatically by lazy.nvim
|
||||
--
|
||||
-- In your plugin files, you can:
|
||||
-- * add extra plugins
|
||||
-- * disable/enabled LazyVim plugins
|
||||
-- * override the configuration of LazyVim plugins
|
||||
return {
|
||||
-- add gruvbox
|
||||
{ "ellisonleao/gruvbox.nvim" },
|
||||
|
||||
-- Configure LazyVim to load gruvbox
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "gruvbox",
|
||||
},
|
||||
},
|
||||
|
||||
-- change trouble config
|
||||
{
|
||||
"folke/trouble.nvim",
|
||||
-- opts will be merged with the parent spec
|
||||
opts = { use_diagnostic_signs = true },
|
||||
},
|
||||
|
||||
-- disable trouble
|
||||
{ "folke/trouble.nvim", enabled = false },
|
||||
|
||||
-- override nvim-cmp and add cmp-emoji
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
dependencies = { "hrsh7th/cmp-emoji" },
|
||||
---@param opts cmp.ConfigSchema
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sources, { name = "emoji" })
|
||||
end,
|
||||
},
|
||||
|
||||
-- change some telescope options and a keymap to browse plugin files
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
keys = {
|
||||
-- add a keymap to browse plugin files
|
||||
-- stylua: ignore
|
||||
{
|
||||
"<leader>fp",
|
||||
function() require("telescope.builtin").find_files({ cwd = require("lazy.core.config").options.root }) end,
|
||||
desc = "Find Plugin File",
|
||||
},
|
||||
},
|
||||
-- change some options
|
||||
opts = {
|
||||
defaults = {
|
||||
layout_strategy = "horizontal",
|
||||
layout_config = { prompt_position = "top" },
|
||||
sorting_strategy = "ascending",
|
||||
winblend = 0,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- add pyright to lspconfig
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
---@type lspconfig.options
|
||||
servers = {
|
||||
-- pyright will be automatically installed with mason and loaded with lspconfig
|
||||
pyright = {},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- add tsserver and setup with typescript.nvim instead of lspconfig
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
dependencies = {
|
||||
"jose-elias-alvarez/typescript.nvim",
|
||||
init = function()
|
||||
require("lazyvim.util").lsp.on_attach(function(_, buffer)
|
||||
-- stylua: ignore
|
||||
vim.keymap.set( "n", "<leader>co", "TypescriptOrganizeImports", { buffer = buffer, desc = "Organize Imports" })
|
||||
vim.keymap.set("n", "<leader>cR", "TypescriptRenameFile", { desc = "Rename File", buffer = buffer })
|
||||
end)
|
||||
end,
|
||||
},
|
||||
---@class PluginLspOpts
|
||||
opts = {
|
||||
---@type lspconfig.options
|
||||
servers = {
|
||||
-- tsserver will be automatically installed with mason and loaded with lspconfig
|
||||
tsserver = {},
|
||||
},
|
||||
-- you can do any additional lsp server setup here
|
||||
-- return true if you don't want this server to be setup with lspconfig
|
||||
---@type table<string, fun(server:string, opts:_.lspconfig.options):boolean?>
|
||||
setup = {
|
||||
-- example to setup with typescript.nvim
|
||||
tsserver = function(_, opts)
|
||||
require("typescript").setup({ server = opts })
|
||||
return true
|
||||
end,
|
||||
-- Specify * to use this function as a fallback for any server
|
||||
-- ["*"] = function(server, opts) end,
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- for typescript, LazyVim also includes extra specs to properly setup lspconfig,
|
||||
-- treesitter, mason and typescript.nvim. So instead of the above, you can use:
|
||||
{ import = "lazyvim.plugins.extras.lang.typescript" },
|
||||
|
||||
-- add more treesitter parsers
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"html",
|
||||
"javascript",
|
||||
"json",
|
||||
"lua",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"python",
|
||||
"query",
|
||||
"regex",
|
||||
"tsx",
|
||||
"typescript",
|
||||
"vim",
|
||||
"yaml",
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
-- since `vim.tbl_deep_extend`, can only merge tables and not lists, the code above
|
||||
-- would overwrite `ensure_installed` with the new value.
|
||||
-- If you'd rather extend the default config, use the code below instead:
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = function(_, opts)
|
||||
-- add tsx and treesitter
|
||||
vim.list_extend(opts.ensure_installed, {
|
||||
"tsx",
|
||||
"typescript",
|
||||
})
|
||||
end,
|
||||
},
|
||||
|
||||
-- the opts function can also be used to change the default opts:
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = function(_, opts)
|
||||
table.insert(opts.sections.lualine_x, "😄")
|
||||
end,
|
||||
},
|
||||
|
||||
-- or you can return new options to override all the defaults
|
||||
{
|
||||
"nvim-lualine/lualine.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = function()
|
||||
return {
|
||||
--[[add your custom lualine config here]]
|
||||
}
|
||||
end,
|
||||
},
|
||||
|
||||
-- use mini.starter instead of alpha
|
||||
{ import = "lazyvim.plugins.extras.ui.mini-starter" },
|
||||
|
||||
-- add jsonls and schemastore packages, and setup treesitter for json, json5 and jsonc
|
||||
{ import = "lazyvim.plugins.extras.lang.json" },
|
||||
|
||||
-- add any tools you want to have installed below
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"stylua",
|
||||
"shellcheck",
|
||||
"shfmt",
|
||||
"flake8",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
2
nvim/lua/plugins/init.lua
Normal file
2
nvim/lua/plugins/init.lua
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
return {
|
||||
}
|
||||
16
nvim/lua/plugins/meson.lua
Normal file
16
nvim/lua/plugins/meson.lua
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = { ensure_installed = { "meson" } },
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
servers = {
|
||||
mesonlsp = {
|
||||
mason = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
16
nvim/lua/plugins/opengl.lua
Normal file
16
nvim/lua/plugins/opengl.lua
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
return {
|
||||
{
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = { ensure_installed = { "glsl" } },
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
opts = {
|
||||
servers = {
|
||||
glslls = {
|
||||
mason = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
3
nvim/stylua.toml
Normal file
3
nvim/stylua.toml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
column_width = 120
|
||||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 618fc22e803418d922b303817c8af5d1988ecbb7
|
||||
102
rofi/applets/bin/appasroot.sh
Executable file
102
rofi/applets/bin/appasroot.sh
Executable file
|
|
@ -0,0 +1,102 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya (adi1090x)
|
||||
## Github : @adi1090x
|
||||
#
|
||||
## Applets : Run Applications as Root
|
||||
|
||||
# Import Current Theme
|
||||
source "$HOME"/.config/rofi/applets/shared/theme.bash
|
||||
theme="$type/$style"
|
||||
|
||||
# Theme Elements
|
||||
prompt='Applications'
|
||||
mesg='Run Applications as Root'
|
||||
|
||||
if [[ "$theme" == *'type-1'* ]]; then
|
||||
list_col='1'
|
||||
list_row='5'
|
||||
win_width='400px'
|
||||
elif [[ "$theme" == *'type-3'* ]]; then
|
||||
list_col='1'
|
||||
list_row='5'
|
||||
win_width='120px'
|
||||
elif [[ "$theme" == *'type-5'* ]]; then
|
||||
list_col='1'
|
||||
list_row='5'
|
||||
win_width='520px'
|
||||
elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then
|
||||
list_col='5'
|
||||
list_row='1'
|
||||
win_width='670px'
|
||||
fi
|
||||
|
||||
# Options
|
||||
layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2`
|
||||
if [[ "$layout" == 'NO' ]]; then
|
||||
option_1=" Alacritty"
|
||||
option_2=" Thunar"
|
||||
option_3=" Geany"
|
||||
option_4=" Ranger"
|
||||
option_5=" Vim"
|
||||
else
|
||||
option_1=""
|
||||
option_2=""
|
||||
option_3=""
|
||||
option_4=""
|
||||
option_5=""
|
||||
fi
|
||||
|
||||
# Rofi CMD
|
||||
rofi_cmd() {
|
||||
rofi -theme-str "window {width: $win_width;}" \
|
||||
-theme-str "listview {columns: $list_col; lines: $list_row;}" \
|
||||
-theme-str 'textbox-prompt-colon {str: "";}' \
|
||||
-dmenu \
|
||||
-p "$prompt" \
|
||||
-mesg "$mesg" \
|
||||
-markup-rows \
|
||||
-theme ${theme}
|
||||
}
|
||||
|
||||
# Pass variables to rofi dmenu
|
||||
run_rofi() {
|
||||
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5" | rofi_cmd
|
||||
}
|
||||
|
||||
# Execute Command
|
||||
run_cmd() {
|
||||
polkit_cmd="pkexec env PATH=$PATH DISPLAY=$DISPLAY XAUTHORITY=$XAUTHORITY"
|
||||
if [[ "$1" == '--opt1' ]]; then
|
||||
${polkit_cmd} alacritty
|
||||
elif [[ "$1" == '--opt2' ]]; then
|
||||
${polkit_cmd} dbus-run-session thunar
|
||||
elif [[ "$1" == '--opt3' ]]; then
|
||||
${polkit_cmd} geany
|
||||
elif [[ "$1" == '--opt4' ]]; then
|
||||
${polkit_cmd} alacritty -e ranger
|
||||
elif [[ "$1" == '--opt5' ]]; then
|
||||
${polkit_cmd} alacritty -e vim
|
||||
fi
|
||||
}
|
||||
|
||||
# Actions
|
||||
chosen="$(run_rofi)"
|
||||
case ${chosen} in
|
||||
$option_1)
|
||||
run_cmd --opt1
|
||||
;;
|
||||
$option_2)
|
||||
run_cmd --opt2
|
||||
;;
|
||||
$option_3)
|
||||
run_cmd --opt3
|
||||
;;
|
||||
$option_4)
|
||||
run_cmd --opt4
|
||||
;;
|
||||
$option_5)
|
||||
run_cmd --opt5
|
||||
;;
|
||||
esac
|
||||
|
||||
104
rofi/applets/bin/apps.sh
Executable file
104
rofi/applets/bin/apps.sh
Executable file
|
|
@ -0,0 +1,104 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
## Author : Aditya Shakya (adi1090x)
|
||||
## Github : @adi1090x
|
||||
#
|
||||
## Applets : Favorite Applications
|
||||
|
||||
# Import Current Theme
|
||||
source "$HOME"/.config/rofi/applets/shared/theme.bash
|
||||
theme="$type/$style"
|
||||
|
||||
# Theme Elements
|
||||
prompt='Applications'
|
||||
mesg="Installed Packages : `pacman -Q | wc -l` (pacman)"
|
||||
|
||||
if [[ ( "$theme" == *'type-1'* ) || ( "$theme" == *'type-3'* ) || ( "$theme" == *'type-5'* ) ]]; then
|
||||
list_col='1'
|
||||
list_row='6'
|
||||
elif [[ ( "$theme" == *'type-2'* ) || ( "$theme" == *'type-4'* ) ]]; then
|
||||
list_col='6'
|
||||
list_row='1'
|
||||
fi
|
||||
|
||||
# CMDs (add your apps here)
|
||||
term_cmd='alacritty'
|
||||
file_cmd='thunar'
|
||||
text_cmd='geany'
|
||||
web_cmd='firefox'
|
||||
music_cmd='alacritty -e ncmpcpp'
|
||||
setting_cmd='xfce4-settings-manager'
|
||||
|
||||
# Options
|
||||
layout=`cat ${theme} | grep 'USE_ICON' | cut -d'=' -f2`
|
||||
if [[ "$layout" == 'NO' ]]; then
|
||||
option_1=" Terminal <span weight='light' size='small'><i>($term_cmd)</i></span>"
|
||||
option_2=" Files <span weight='light' size='small'><i>($file_cmd)</i></span>"
|
||||
option_3=" Editor <span weight='light' size='small'><i>($text_cmd)</i></span>"
|
||||
option_4=" Browser <span weight='light' size='small'><i>($web_cmd)</i></span>"
|
||||
option_5=" Music <span weight='light' size='small'><i>($music_cmd)</i></span>"
|
||||
option_6=" Settings <span weight='light' size='small'><i>($setting_cmd)</i></span>"
|
||||
else
|
||||
option_1=""
|
||||
option_2=""
|
||||
option_3=""
|
||||
option_4=""
|
||||
option_5=""
|
||||
option_6=""
|
||||
fi
|
||||
|
||||
# Rofi CMD
|
||||
rofi_cmd() {
|
||||
rofi -theme-str "listview {columns: $list_col; lines: $list_row;}" \
|
||||
-theme-str 'textbox-prompt-colon {str: "";}' \
|
||||
-dmenu \
|
||||
-p "$prompt" \
|
||||
-mesg "$mesg" \
|
||||
-markup-rows \
|
||||
-theme ${theme}
|
||||
}
|
||||
|
||||
# Pass variables to rofi dmenu
|
||||
run_rofi() {
|
||||
echo -e "$option_1\n$option_2\n$option_3\n$option_4\n$option_5\n$option_6" | rofi_cmd
|
||||
}
|
||||
|
||||
# Execute Command
|
||||
run_cmd() {
|
||||
if [[ "$1" == '--opt1' ]]; then
|
||||
${term_cmd}
|
||||
elif [[ "$1" == '--opt2' ]]; then
|
||||
${file_cmd}
|
||||
elif [[ "$1" == '--opt3' ]]; then
|
||||
${text_cmd}
|
||||
elif [[ "$1" == '--opt4' ]]; then
|
||||
${web_cmd}
|
||||
elif [[ "$1" == '--opt5' ]]; then
|
||||
${music_cmd}
|
||||
elif [[ "$1" == '--opt6' ]]; then
|
||||
${setting_cmd}
|
||||
fi
|
||||
}
|
||||
|
||||
# Actions
|
||||
chosen="$(run_rofi)"
|
||||
case ${chosen} in
|
||||
$option_1)
|
||||
run_cmd --opt1
|
||||
;;
|
||||
$option_2)
|
||||
run_cmd --opt2
|
||||
;;
|
||||
$option_3)
|
||||
run_cmd --opt3
|
||||
;;
|
||||
$option_4)
|
||||
run_cmd --opt4
|
||||
;;
|
||||
$option_5)
|
||||
run_cmd --opt5
|
||||
;;
|
||||
$option_6)
|
||||
run_cmd --opt6
|
||||
;;
|
||||
esac
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue