Compare commits

..

136 commits
main ... nixos

Author SHA1 Message Date
Benjamin Palko
3ad4fb207f update flake 2024-08-29 09:05:17 -04:00
Benjamin Palko
84f405dc76 gtk desktop portal 2024-08-29 09:05:11 -04:00
Benjamin Palko
0f73c59ec7 move pywal to hyprland 2024-08-29 09:05:04 -04:00
Benjamin Palko
55f2ca393b remove hypr nix 2024-08-29 09:04:51 -04:00
Benjamin Palko
5747573a94 obsidian, logseq sucks 2024-08-22 08:27:01 -04:00
Benjamin Palko
45f8c8a8fa move pywal to packafge 2024-08-22 08:27:01 -04:00
Benjamin Palko
cb764e7710 gitignore xfce4 2024-08-21 00:04:27 -04:00
Benjamin Palko
109cb1918e lazyvim blyat 2024-08-21 00:03:41 -04:00
Benjamin Palko
45ff4d5838 cursor! 2024-08-21 00:03:30 -04:00
Benjamin Palko
62415d9fa2 lazyvim + glsl 2024-08-18 11:57:16 -04:00
Benjamin Palko
c93a09c3df blyat 2024-08-17 22:24:59 -04:00
Benjamin Palko
aad939bb93 add meson lsp support 2024-08-17 22:24:54 -04:00
Benjamin Palko
27f0bfbbf3 FLAKES!!! 2024-08-16 22:41:39 -04:00
Benjamin Palko
cae82aaf8a lazyvim blyat 2024-08-16 21:33:44 -04:00
Benjamin Palko
2802cc319d flakify 2024-08-16 21:31:25 -04:00
Benjamin Palko
21ddeb87a1 waybar 2024-08-16 09:10:13 -04:00
Benjamin Palko
9fd3ad2910 xfce4 2024-08-16 09:09:59 -04:00
Benjamin Palko
dd9ce9cd69 hyprblyat 2024-08-14 20:08:02 -04:00
Benjamin Palko
d3318890a9 no active icon 2024-08-14 17:33:42 -04:00
Benjamin Palko
8e99534112 aggregate 2024-08-14 17:31:22 -04:00
Benjamin Palko
ece649606e NVIDIA 2024-08-14 09:01:24 -04:00
Benjamin Palko
d41a47b887 wayland 2024-08-14 09:01:16 -04:00
Benjamin Palko
fc29e1698a coolors 2024-08-14 08:43:39 -04:00
Benjamin Palko
4fb08c390c nvidia 2024-08-14 08:43:23 -04:00
Benjamin Palko
dd263492b5 blyat 2024-08-09 13:31:10 -04:00
Benjamin Palko
4a6ae43a42 STYLING! 2024-08-09 13:30:03 -04:00
Benjamin Palko
16491f437f FONT 2024-08-09 13:23:17 -04:00
Benjamin Palko
c3e5fc9028 defaults 2024-08-09 13:18:19 -04:00
Benjamin Palko
16640c4642 cmake blyat 2024-08-09 13:17:40 -04:00
Benjamin Palko
a09a675b41 workspaces 2024-08-09 13:17:26 -04:00
Benjamin Palko
6097df0c27 file manager archive 2024-08-07 21:45:05 -04:00
Benjamin Palko
98e73aab55 RULES! 2024-08-07 21:44:53 -04:00
Benjamin Palko
12154d5bcb opengl boiii 2024-08-07 21:44:44 -04:00
Benjamin Palko
41ab4d3222 lazyvim blyat 2024-08-06 23:15:46 -04:00
Benjamin Palko
8c9e987421 xwayland 2024-08-06 23:15:34 -04:00
Benjamin Palko
f7c47d6fa1 dicord 2024-08-06 23:15:21 -04:00
Benjamin Palko
558e034386 gnumakec 2024-08-06 23:05:03 -04:00
Benjamin Palko
5e721b5418 back to discord! 2024-08-06 23:04:56 -04:00
Benjamin Palko
19218bc9ce proper 2024-08-03 20:40:26 -04:00
Benjamin Palko
0a4f785a04 powermenu logout 2024-08-03 20:40:18 -04:00
Benjamin Palko
32bd6551e9 reeeeeeeeeeee I dont understand 2024-08-03 20:01:18 -04:00
Benjamin Palko
04741d27a9 CAPITAL!! 2024-08-03 19:59:54 -04:00
Benjamin Palko
c3b05e35f1 opentabletdriver actually working
devices
2024-08-03 19:59:19 -04:00
Benjamin Palko
c71a1bd7ce startup apps 2024-08-03 19:58:40 -04:00
Benjamin Palko
621b05a216 vcpkg 2024-08-03 19:58:31 -04:00
Benjamin Palko
823fba724e logseq 2024-08-03 13:15:05 -04:00
Benjamin Palko
63d6ac46a3 CLANG!!!! 2024-08-03 12:52:29 -04:00
Benjamin Palko
f53b310f52 clang setup 2024-08-03 12:51:32 -04:00
Benjamin Palko
737c3cf77b lazyvim blyaaaaaaaaatt 2024-08-03 10:55:40 -04:00
Benjamin Palko
2473ee6a9d rofi themes 2024-08-03 10:55:08 -04:00
Benjamin Palko
56d0e8e3fd lazyvim blyaaaaaaat 2024-08-01 23:11:49 -04:00
Benjamin Palko
ea5aff4953 FIX NVIM 2024-08-01 23:09:06 -04:00
Benjamin Palko
914f1320cd use t1 launcher 2024-08-01 23:08:59 -04:00
Benjamin Palko
7969df993b cykaaa 2024-08-01 22:58:01 -04:00
Benjamin Palko
e722a447a6 waybar update 2024-07-30 12:24:18 -04:00
Benjamin Palko
7be2de3bbc webcoooord 2024-07-30 11:33:48 -04:00
Benjamin Palko
33a005f900 add new rofi menus 2024-07-30 11:33:42 -04:00
Benjamin Palko
9d33dddce5 fix waybar script 2024-07-29 23:43:59 -04:00
Benjamin Palko
cb53e9e610 PREEEXXXXUUUU 2024-07-29 21:54:13 -04:00
Benjamin Palko
90788bb295 new rofi colors for premade applets 2024-07-29 21:54:01 -04:00
Benjamin Palko
070147b863 organize and add game engine stuff 2024-07-29 21:53:42 -04:00
Benjamin Palko
93b37a61f5 remove ags fr now 2024-07-29 21:53:04 -04:00
Benjamin Palko
4bba41ea48 set monitor refresh rate 2024-07-29 21:27:58 -04:00
Benjamin Palko
77040968df electron hint hyprland 2024-07-29 21:27:42 -04:00
Benjamin Palko
7db2d1470d webcord 2024-07-29 19:52:08 -04:00
Benjamin Palko
7ca6c4a157 lazyvim blam 2024-07-29 19:38:30 -04:00
Benjamin Palko
0d55f0246c sddm 2024-07-29 19:38:20 -04:00
Benjamin Palko
9225c0a888 bump to 2% 2024-07-29 17:31:37 -04:00
Benjamin Palko
b1c1d1d3d1 whats Discocss??????!?!?!?!?!?!?!?!? LOL 2024-07-25 21:13:51 -04:00
Benjamin Palko
6173f4072f lazyvim kappa 2024-07-25 21:13:38 -04:00
Benjamin Palko
28ce1cf67b sort out nvidia and hyprland 2024-07-25 21:13:28 -04:00
Benjamin Palko
03cd9a4be5 clipboard 2024-07-25 21:13:10 -04:00
Benjamin Palko
7078a1a96a move pywal to shell binary 2024-07-25 00:06:41 -04:00
Benjamin Palko
880e2120df gitignore 2024-07-24 22:41:11 -04:00
Benjamin Palko
643cc5e19b GTK LETS GOOO 2024-07-24 20:37:40 -04:00
Benjamin Palko
af93df5181 update waybar look 2024-07-21 16:31:35 -04:00
Benjamin Palko
c6214984ff NEWS! 2024-07-21 16:23:44 -04:00
Benjamin Palko
592cfb867c add polkit 2024-07-21 16:23:35 -04:00
Benjamin Palko
2191be6255 revert back to hypr config, easier 2024-07-21 16:23:29 -04:00
Benjamin Palko
5f12976920 relative path 2024-07-21 13:56:50 -04:00
Benjamin Palko
e0ec1e606f use directory symlinks 2024-07-21 13:56:02 -04:00
Benjamin Palko
1a01a958d5 add lua and symlink to dotfiles 2024-07-21 13:51:52 -04:00
Benjamin Palko
a257d309d9 fix sourcing 2024-07-21 10:31:51 -04:00
Benjamin Palko
5db1a379e4 migrate hyprland to nix 2024-07-21 10:06:50 -04:00
Benjamin Palko
62ed20d1f5 move configs to nix 2024-07-20 13:21:47 -04:00
Benjamin Palko
f1061c3c8c move hyprland to subfolder 2024-07-20 13:02:26 -04:00
Benjamin Palko
6f25d234c3 ags init 2024-07-16 00:01:48 -04:00
Benjamin Palko
4f6a0c34d5 git config 2024-07-15 21:38:21 -04:00
Benjamin Palko
3caf6e9a67 applications 2024-07-15 21:38:16 -04:00
Benjamin Palko
092b3d6061 do what ye want cuz a pirate is free, you are a pirate! 2024-07-15 21:11:19 -04:00
Benjamin Palko
a62a45f9f4 media and gaming 2024-07-15 20:54:39 -04:00
Benjamin Palko
7afe711932 cava 2024-07-15 20:42:54 -04:00
Benjamin Palko
c4ddee1d29 update configs!!!!! 2024-07-15 20:34:59 -04:00
Benjamin Palko
ab286ed4a2 rofi-wayland 2024-07-15 00:13:33 -04:00
Benjamin Palko
077b1f7083 split shell config to file and make shell user default 2024-07-14 23:40:54 -04:00
Benjamin Palko
653ef5b48b move script 2024-07-14 23:30:27 -04:00
Benjamin Palko
c8b480ccfd update symlinks 2024-07-14 23:30:04 -04:00
Benjamin Palko
dec5fcf0f5 lazyvim 2024-07-14 23:19:09 -04:00
Benjamin Palko
5eec1d1c38 migrate terminal config to nix 2024-07-14 23:19:06 -04:00
Benjamin Palko
8d5d84dedb update audio 2024-07-13 23:58:49 -04:00
Benjamin Palko
d277850804 re-organize nix configs
nvim update
2024-07-13 23:56:56 -04:00
Benjamin Palko
eb3fb4f88e we do what we must, because, we can 2024-07-13 22:19:15 -04:00
Benjamin Palko
85818a4094 YEAAAAAAAHHH!!!!!! 2024-07-13 11:44:01 -04:00
Benjamin Palko
be73df6529 no confirm kitty 2024-07-13 10:13:46 -04:00
Benjamin Palko
62cb8d8d43 move music to scratchpad 2024-07-13 10:13:39 -04:00
Benjamin Palko
aede818226 HYPRIDLE 2024-07-12 18:58:29 -04:00
Benjamin Palko
42a55de42f fookin eeyyyy 2024-07-12 17:53:22 -04:00
Benjamin Palko
c109a94823 separate nvidia 2024-07-12 09:28:37 -04:00
Benjamin Palko
c4779b2a79 separate services to file 2024-07-12 09:22:32 -04:00
Benjamin Palko
8b162bf941 lazy update 2024-07-12 09:05:26 -04:00
Benjamin Palko
4fd859f00c pokemon GO to the polls 2024-07-12 00:55:06 -04:00
Benjamin Palko
c8438c44aa fuck thunar 2024-07-12 00:54:42 -04:00
Benjamin Palko
c5c1e698f5 fuckin vim 2024-07-12 00:54:36 -04:00
Benjamin Palko
a45c1e0702 why am i still awake 2024-07-12 00:54:29 -04:00
Benjamin Palko
48a210554c btop 2024-07-11 17:35:05 -04:00
Benjamin Palko
319b59360b xcursor 2024-07-11 13:08:48 -04:00
Benjamin Palko
87db47ab1b steam window rules 2024-07-11 13:07:13 -04:00
Benjamin Palko
c9d2951cd2 gtk cursor 2024-07-11 13:07:06 -04:00
Benjamin Palko
ae736fa609 lazyvim 2024-07-11 12:52:34 -04:00
Benjamin Palko
c22751909d dont need 2024-07-11 12:52:21 -04:00
Benjamin Palko
9e6eeb6535 update config 2024-07-11 12:51:59 -04:00
Benjamin Palko
3af7a004c2 fix phantom monitor 2024-07-11 10:55:57 -04:00
Benjamin Palko
0f9b50e154 ditch asdf 2024-07-11 10:55:29 -04:00
Benjamin Palko
af2c635c23 add rust 2024-07-11 10:43:13 -04:00
Benjamin Palko
b2ef7e48b4 update services 2024-07-11 10:30:06 -04:00
Benjamin Palko
0150e29451 fix zsh donfig 2024-07-11 10:29:14 -04:00
Benjamin Palko
43dab69a0b update lazy 2024-07-11 10:26:44 -04:00
Benjamin Palko
3ec9d8479e fix rofi float 2024-07-11 10:09:13 -04:00
Benjamin Palko
81f83d85dc change steam program setup + neofetch 2024-07-11 09:54:34 -04:00
Benjamin Palko
b6653a4252 missing packages for nc 2024-07-11 09:41:16 -04:00
Benjamin Palko
b01b2c5aac add kitty conf 2024-07-11 09:41:04 -04:00
Benjamin Palko
c71ba09614 copy dotfiles from arch 2024-07-11 09:20:42 -04:00
Benjamin Palko
76d6787417 rc files 2024-07-11 09:20:42 -04:00
Benjamin Palko
a8f6e2df65 nixos config 2024-07-11 09:20:42 -04:00
Benjamin Palko
e4be757d6a install 2024-07-10 21:04:55 -04:00
Benjamin Palko
f9a3e1c58d README! 2024-07-10 14:43:48 -04:00
325 changed files with 30506 additions and 1174 deletions

View file

@ -1,6 +0,0 @@
[window]
decorations = "Transparent"
[font]
normal = { family = "JetBrainsMono NF", style = "Regular" }
size = 12

View file

@ -2,8 +2,6 @@
# ~/.bashrc # ~/.bashrc
# #
eval "$(mise activate bash)"
# If not running interactively, don't do anything # If not running interactively, don't do anything
[[ $- != *i* ]] && return [[ $- != *i* ]] && return

View file

@ -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
View file

@ -3,9 +3,3 @@
./cava/config ./cava/config
cava/config cava/config
# Discocss
./discocss
discocss/
!./discocss/custom.css
!discocss/custom.css

6
.gitmodules vendored
View file

@ -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

View file

@ -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

View file

@ -1,4 +0,0 @@
if [ ! "$(getent group docker)" ]; then
sudo groupadd docker
fi
sudo usermod -aG docker "${USER}"

View file

@ -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[@]}"
}

View file

@ -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

View file

@ -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

View file

@ -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"
)

View file

@ -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=(
)

View file

@ -1,3 +0,0 @@
packagesPacman=(
"plymouth"
)

View file

@ -1,4 +0,0 @@
packagesPacman=(
"xdg-desktop-portal"
"xdg-desktop-portal-gnome"
)

View file

@ -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"
)

View file

@ -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"
)

View file

@ -1,33 +1,12 @@
#!/bin/bash #!/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
directories=( directories=(
"cava" "cava"
"gtk-3.0"
"gtk-4.0"
"hypr" "hypr"
"kitty"
"mise"
"neofetch"
"nvim" "nvim"
"quickshell"
"rofi" "rofi"
"swappy" "swappy"
"swaync" "swaync"
@ -37,16 +16,15 @@ directories=(
_symlinkDirs() { _symlinkDirs() {
for dir; do for dir; do
if [ -h ~/.config/${dir} ]; then if [ -h ~/.config/"${dir}" ]; then
continue continue
fi fi
if [ -d ~/.config/${dir}/ ]; then if [ -d ~/.config/"${dir}"/ ]; then
echo "Deleting existing directory ${dir}" echo "Deleting existing directory ${dir}"
rm -rf ~/.config/${dir}/ rm -rf ~/.config/"${dir}"/
fi fi
ln -s ~/dotfiles/${dir}/ ~/.config/ ln -s ~/dotfiles/"${dir}"/ ~/.config/
done done
} }
_symlinkFiles "${files[@]}"
_symlinkDirs "${directories[@]}" _symlinkDirs "${directories[@]}"

View file

@ -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

View file

@ -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

View file

@ -1,3 +0,0 @@
#!/bin/bash
chsh -s "$(which zsh)"

129
.zshrc
View file

@ -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
View file

@ -1,85 +1,4 @@
# Arch Linux Setup # Dotfiles
This is a work in progress setup for my first Arch Linux install - [Arch](<https://github.com/BenjaminPalko/dotfiles/tree/arch(btw)>)
- [NixOS](https://github.com/BenjaminPalko/dotfiles/tree/nixos)
## 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...)

0
ascii.txt → aperture.txt Executable file → Normal file
View file

4
caprine/.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
*
!.gitignore
!config.json
!custom.css

43
caprine/config.json Normal file
View 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
View 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);
}

View file

@ -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);
}
}

View file

@ -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;
}

View file

@ -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
View file

@ -0,0 +1,7 @@
{ ... }:
{
imports = [
<home-manager/nixos>
./nixos/nixos.nix
];
}

48
flake.lock generated Normal file
View 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
View 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}"; }
];
};
};
}

View 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
View file

@ -0,0 +1,12 @@
{ ... }:
{
programs.git = {
enable = true;
userName = "Benjamin Palko";
userEmail = "Benjaminpalko@hotmail.com";
};
programs.gh = {
enable = true;
gitCredentialHelper.enable = true;
};
}

View 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;
};
};
}

View 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
View file

@ -0,0 +1,10 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
spotify
mplayer
];
programs.cava = {
enable = true;
};
}

55
home-manager/nvim.nix Normal file
View 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
View 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
View file

@ -0,0 +1,4 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ deluge ];
}

View 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

View file

@ -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 # 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, T, exec, $terminal
bind = $mainMod, X, killactive, bind = $mainMod, X, killactive,
bind = $mainMod, ESCAPE, exec, $powerMenu
bind = $mainMod, E, exec, $fileManager bind = $mainMod, E, exec, $fileManager
bind = $mainMod, F, togglefloating, bind = $mainMod, F, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, V, togglesplit, # dwindle bind = $mainMod, V, togglesplit, # dwindle
bind = $mainMod, L, exec, $lockScreen # hyprlock bind = $mainMod, L, exec, $lockScreen # hyprlock
bind = $mainMod, period, exec, gnome-characters bind = $mainMod, period, exec, emote
bind = $mainMod, B, exec, zen-browser bind = $mainMod, B, exec, firefox
bind = $mainMod CTRL, F, fullscreen bind = $mainMod CTRL, F, fullscreen
bind = , PRINT, exec, grim -g "$(slurp)" - | swappy -f - bind = , PRINT, exec, grim -g "$(slurp)" - | swappy -f -
@ -60,12 +50,12 @@ bind = $mainMod SHIFT, 0, movetoworkspace, 10
# Scratchpad # Scratchpad
bind = CTRL SHIFT, S, togglespecialworkspace, magic bind = CTRL SHIFT, S, togglespecialworkspace, magic
bind = CTRL $mainMod, S, movetoworkspace, special:magic bind = CTRL $mainMod, S, movetoworkspace, special:magic
# Terminal # Terminal
bind = CTRL SHIFT, T, togglespecialworkspace, terminal bind = CTRL SHIFT, T, togglespecialworkspace, terminal
bind = CTRL $mainMod, T, movetoworkspace, special:terminal
# Music # Music
bind = CTRL SHIFT, M, togglespecialworkspace, music bind = CTRL SHIFT, M, togglespecialworkspace, music
bind = CTRL $mainMod, M, movetoworkspace, special:music
# Scroll through existing workspaces with mainMod + scroll # Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1 bind = $mainMod, mouse_down, workspace, e+1
@ -88,6 +78,3 @@ bind = , XF86AudioStop, exec,
bind = , XF86AudioPrev, exec, playerctl previous bind = , XF86AudioPrev, exec, playerctl previous
bind = , XF86AudioNext, exec, playerctl next bind = , XF86AudioNext, exec, playerctl next
# Gestures
# https://wiki.hypr.land/Configuring/Gestures/
gesture = 4, horizontal, workspace

35
hypr/config/rules.conf Normal file
View 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
View 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

View file

@ -28,8 +28,8 @@ listener {
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired. on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
} }
# listener { listener {
# timeout = 1800 # 30min timeout = 1800 # 30min
# on-timeout = systemctl suspend # suspend pc on-timeout = systemctl suspend # suspend pc
# } }

View file

@ -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 # See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Programs # Execute your favorite apps at launch
$terminal = alacritty # exec-once = waybar & hyprpaper & firefox
$fileManager = nautilus 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 $lockScreen = hyprlock
# See https://wiki.hyprland.org/Configuring/Keywords/ for more # See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = SUPER $mainMod = SUPER
# See https://wiki.hyprland.org/Configuring/Monitors/ exec-once=hyprctl setcursor volantes_cursors 24
# PC env = XCURSOR_THEME,
monitor=DP-1,2560x1440@144,auto,auto
# Laptop source = ~/.config/hypr/config/environments/nvidia.conf
monitor=eDP-1,1920x1080@60,auto,1.20 source = ~/.config/hypr/config/keybinds.conf
source = ~/.config/hypr/config/rules.conf
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/ # For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input { input {
@ -36,8 +65,10 @@ general {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
gaps_in = 10 gaps_in = 10
gaps_out = 10 gaps_out = 20
border_size = 3 border_size = 3
col.active_border = $color4 $color13 45deg
col.inactive_border = $color0
layout = dwindle layout = dwindle
@ -45,6 +76,39 @@ general {
allow_tearing = true 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 { dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more # 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 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 # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
} }
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
workspace_swipe = off
}
misc { misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
@ -67,12 +136,3 @@ device {
sensitivity = -0.5 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

View file

@ -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
}

View file

@ -1,7 +0,0 @@
# PyWal Colors
source = ~/.cache/wal/colors-hyprland.conf
general {
col.active_border = $color4 $color13 45deg
col.inactive_border = $color0
}

View file

@ -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)
}
}

View file

@ -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'

View file

@ -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

View file

@ -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

View file

@ -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 { background {
monitor = monitor =
path = $HOME/.cache/hyprlock/wallpaper #path = $HOME/dotfiles/.settings/lockscreen.png # only png supported for now
reload_cmd = "cp $(cat $HOME/.cache/wal/wal) $HOME/.cache/hyprlock/wallpaper" color = rgba(25, 20, 20, 1.0)
blur_passes = 1
blur_size = 3 # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations
# color = $base 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 { input-field {
monitor = monitor =
size = 300, 60 size = 200, 50
shadow_passes = 1 outline_thickness = 1
rounding = 20 dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
outline_thickness = 0 dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_size = 0.2
dots_spacing = 0.2
dots_center = true dots_center = true
outer_color = $base100 outer_color = rgb(000000)
inner_color = $base100 inner_color = rgb(200, 200, 200)
font_color = $text font_color = rgb(10, 10, 10)
fade_on_empty = false fade_on_empty = true
placeholder_text = <span foreground="##$textAlpha"><i>Input password...</i></span> placeholder_text = <i>Input Password...</i> # Text rendered in the input box when it's empty.
hide_input = false hide_input = false
check_color = $info position = 0, -20
fail_color = $error
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
capslock_color = $warning
position = 0, -90
halign = center halign = center
valign = center valign = center
} }
# QUOTE
label { label {
monitor = monitor =
shadow_passes = 1 text = Enter your password to unlock
text = cmd[update:60000] echo "<i>$(fortune)</i>" color = rgba(200, 200, 200, 1.0)
color = $text font_size = 25
font_size = 12 font_family = Noto Sans
font_family = $font
position = 0, 200 position = 0, 200
halign = center halign = center
valign = bottom valign = center
} }

View 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
View 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

View file

@ -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

View file

@ -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": ""
}
}

View file

@ -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/"
}
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -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"
}

View file

@ -1,7 +0,0 @@
[tools]
go = "latest"
node = "20"
rust = "latest"
bun = "latest"
dotnet = "8"
java = "latest"

View file

8
nixos/devices.nix Normal file
View file

@ -0,0 +1,8 @@
{ pkgs, ... }:
{
hardware.opentabletdriver = {
enable = true;
package = pkgs.opentabletdriver;
daemon.enable = true;
};
}

8
nixos/gaming.nix Normal file
View 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
};
}

View 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
View 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
View 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
View 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
View 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
View 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
View 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
View 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
View file

@ -0,0 +1,4 @@
{ ... }:
{
security.polkit.enable = true;
}

5
nixos/services.nix Normal file
View file

@ -0,0 +1,5 @@
{ ... }:
{
# SSH
services.openssh.enable = true;
}

10
nixos/shell.nix Normal file
View 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
View 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 +0,0 @@
Subproject commit cb60a3cd51f58ea6a8e0e2aa6cd576c846cd017c

8
nvim/.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
tt.*
.tests
doc/tags
debug
.repro
foo.*
*.log
data

15
nvim/.neoconf.json Normal file
View file

@ -0,0 +1,15 @@
{
"neodev": {
"library": {
"enabled": true,
"plugins": true
}
},
"neoconf": {
"plugins": {
"lua_ls": {
"enabled": true
}
}
}
}

201
nvim/LICENSE Normal file
View 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
View 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
View file

@ -0,0 +1,2 @@
-- bootstrap lazy.nvim, LazyVim and your plugins
require("config.lazy")

81
nvim/lazy-lock.json Normal file
View 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
View 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
}

View 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

View 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
View 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",
},
},
},
})

View 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

View 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,
},
}

View 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",
},
}
}

View 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",
},
},
},
}

View file

@ -0,0 +1,2 @@
return {
}

View file

@ -0,0 +1,16 @@
return {
{
"nvim-treesitter/nvim-treesitter",
opts = { ensure_installed = { "meson" } },
},
{
"neovim/nvim-lspconfig",
opts = {
servers = {
mesonlsp = {
mason = false,
},
},
},
},
}

View 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
View 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
View 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
View 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