add nix dotfiles
This commit is contained in:
parent
1058657744
commit
1d912e1ee9
394 changed files with 1645 additions and 8033 deletions
21
LICENSE
Normal file
21
LICENSE
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2024 Anthony Rodriguez
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
94
README.md
94
README.md
|
@ -1,81 +1,59 @@
|
||||||
|
# My NixOS Flake
|
||||||
|
|
||||||
# My dotfiles
|
This repository contains my personal NixOS configurations for two machines: my laptop (`vamos`) and my desktop computer (`solaire`). These configurations are managed using the Nix Flake system to ensure reproducibility and ease of deployment.
|
||||||
|
|
||||||
- [My dotfiles](#my-dotfiles)
|
## Structure
|
||||||
- [Installing](#installing)
|
|
||||||
- [Prerequisites](#prerequisites)
|
|
||||||
- [Fedora (desktop)](#fedora-desktop)
|
|
||||||
- [Arch (window manager)](#arch-window-manager)
|
|
||||||
- [Common software](#common-software)
|
|
||||||
- [Theme](#theme)
|
|
||||||
- [Shell](#shell)
|
|
||||||
- [Window Manager configuration](#window-manager-configuration)
|
|
||||||
- [Software used](#software-used)
|
|
||||||
- [Services and timers](#services-and-timers)
|
|
||||||
|
|
||||||
I use different flavors for my configuration, as I prefer having a window manager on my laptop, and a desktop environment on my desktop. Therefore, the programs installed as well as the configuration files are different for each of them. Currently, it works using the operating system name but I'm currently working on changing it as you might want to use a window manager on Fedora for instance. The different configurations are going to be detailed below.
|
- `flake.nix`: The main entry point for the Nix flake.
|
||||||
|
- `hosts/`: Directory containing the specific configurations for each host (`vamos` and `solaire`).
|
||||||
|
- `modules/`: Reusable NixOS modules shared between different configurations.
|
||||||
|
- `home/`: Userspace configuration, divided between laptop and desktop.
|
||||||
|
|
||||||
This configuration uses git submodules in order to integrate my Emacs config from a separate repository, so make sure to initialize them before trying to install it (installation instructions below).
|
## Hosts
|
||||||
|
|
||||||
Since I use 1password as my password manager, I also use it to fetch my GPG key and import it automatically, which is why it's a dependency for my configuration. It expects a document called `gpg key`in the `Personal` vault.
|
### Vamos (Laptop)
|
||||||
|
|
||||||
## Installing
|
This is the configuration for my laptop, `vamos`. It uses Gnome, and includes settings optimized for power management, and lightweight applications.
|
||||||
|
|
||||||
### Prerequisites
|
### Solaire (Desktop)
|
||||||
|
|
||||||
- [git](https://git-scm.com)
|
This is the configuration for my desktop computer, `solaire`. It also uses Gnome, and adds Nvidia drivers.
|
||||||
- [chezmoi](https://chezmoi.io)
|
|
||||||
- [1Password](https://1password.com) and the [1Password CLI](https://developer.1password.com/docs/cli) (these dependencies will eventually become completely optional if you are not using it)
|
|
||||||
|
|
||||||
**As of today, only Fedora is supported (with the desktop flavor) and Arch Linux (with the window manager flavor). The installation process for both of them is similar:**
|
## Usage
|
||||||
|
|
||||||
### Fedora (desktop)
|
### Applying the Configuration
|
||||||
|
|
||||||
`FLAVOR=desktop chezmoi init --apply https://github.com/nezia1/dotfiles`
|
To apply the configuration on a machine, use the following steps:
|
||||||
|
|
||||||
### Arch (window manager)
|
1. Clone this repository:
|
||||||
|
|
||||||
`FLAVOR=wm chezmoi init --apply https://github.com/nezia1/dotfiles`
|
```bash
|
||||||
|
git clone https://github.com/nezia1/nixos-config.git
|
||||||
|
cd nixos-config
|
||||||
|
```
|
||||||
|
|
||||||
## Common software
|
2. Switch to the desired configuration:
|
||||||
|
|
||||||
### Theme
|
```bash
|
||||||
|
sudo nixos-rebuild switch --flake .#<hostname>
|
||||||
|
```
|
||||||
|
|
||||||
I use [catppuccin](https://github.com/catppuccin/catppuccin) as my theme
|
Replace `<hostname>` with either `vamos` or `solaire` depending on the machine you are configuring.
|
||||||
(the mocha variant). I love the soothing pastel colors. The GTK theme
|
|
||||||
and the Qt5 theme are also configured to be used with supported
|
|
||||||
applications.
|
|
||||||
|
|
||||||
### Shell
|
### Example
|
||||||
|
|
||||||
I use [fish](https://github.com/fish-shell/fish-shell) as my interactive shell, but I still keep [bash](https://www.gnu.org/software/bash/) as my non-interactive shell for compatibility purposes, as some pieces of software that I use require the user to have a POSIX compliant shell. This is why I have a bash module, where I setup everything that I want to have non-interactively and interactively and if running interactively, have it start a fish session.
|
For the laptop (`vamos`):
|
||||||
|
|
||||||
## Window Manager configuration
|
```bash
|
||||||
|
sudo nixos-rebuild switch --flake .#vamos
|
||||||
|
```
|
||||||
|
|
||||||
This is my laptop configuration. I like using window managers as it optimizes my screen space, and the keybindings are extremely convenient when using a trackpad compared to using a mouse.
|
For the desktop (`solaire`):
|
||||||
|
|
||||||
![](./screenshots/desktop.png) ![](./screenshots/desktop-terminals.png)
|
```bash
|
||||||
|
sudo nixos-rebuild switch --flake .#solaire
|
||||||
|
```
|
||||||
|
|
||||||
### Software used
|
## License
|
||||||
|
|
||||||
- Operating system: [Arch Linux](https://archlinux.org/)
|
This repository is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
|
||||||
- Window manager: [Hyprland](https://hyprland.org)
|
|
||||||
- Status bar: [Waybar](https://github.com/Alexays/Waybar)
|
|
||||||
- Application launcher: [wofi](https://sr.ht/~scoopta/wofi/)
|
|
||||||
- Terminal emulator: [kitty](https://github.com/kovidgoyal/kitty)
|
|
||||||
- Shell: [fish](https://github.com/fish-shell/fish-shell)
|
|
||||||
- Text editor: [Emacs](https://www.gnu.org/software/emacs/)
|
|
||||||
- Notification daemon: [dunst](https://github.com/dunst-project/dunst)
|
|
||||||
- Password manager: [pass](https://www.passwordstore.org/)
|
|
||||||
|
|
||||||
Hyprland is configured to use a random wallpaper from the
|
|
||||||
`$HOME/.dotfiles` directory, so you need to have your wallpapers in it.
|
|
||||||
|
|
||||||
### Services and timers
|
|
||||||
|
|
||||||
The user-services module contains different systemd daemons and timers
|
|
||||||
that you might or might not need depending on your specific use-case:
|
|
||||||
|
|
||||||
- sync: a systemd timer that synchronizes my org directory using
|
|
||||||
[rclone](https://rclone.org/) to a remote called drive (runs every 5
|
|
||||||
minutes)
|
|
||||||
|
|
55
dconf.ini
55
dconf.ini
|
@ -1,55 +0,0 @@
|
||||||
[desktop/input-sources]
|
|
||||||
current=uint32 0
|
|
||||||
mru-sources=[('xkb', 'us'), ('xkb', 'ch+fr')]
|
|
||||||
sources=[('xkb', 'us'), ('xkb', 'ch+fr')]
|
|
||||||
xkb-options=['compose:ralt']
|
|
||||||
|
|
||||||
[desktop/interface]
|
|
||||||
color-scheme='prefer-dark'
|
|
||||||
enable-hot-corners=false
|
|
||||||
font-antialiasing='rgba'
|
|
||||||
font-hinting='full'
|
|
||||||
gtk-enable-primary-paste=false
|
|
||||||
toolkit-accessibility=false
|
|
||||||
|
|
||||||
[desktop/peripherals/keyboard]
|
|
||||||
numlock-state=true
|
|
||||||
|
|
||||||
[mutter]
|
|
||||||
edge-tiling=true
|
|
||||||
|
|
||||||
[shell/keybindings]
|
|
||||||
show-screenshot-ui=['<Shift><Super>s']
|
|
||||||
|
|
||||||
[GWeather4]
|
|
||||||
temperature-unit='centigrade'
|
|
||||||
|
|
||||||
[shell/weather]
|
|
||||||
automatic-location=true
|
|
||||||
|
|
||||||
[system/location]
|
|
||||||
enabled=true
|
|
||||||
|
|
||||||
[terminal/legacy/profiles:]
|
|
||||||
default='71a9971e-e829-43a9-9b2f-4565c855d664'
|
|
||||||
list=['71a9971e-e829-43a9-9b2f-4565c855d664']
|
|
||||||
|
|
||||||
[terminal/legacy/profiles:/:71a9971e-e829-43a9-9b2f-4565c855d664]
|
|
||||||
background-color='#303446'
|
|
||||||
cursor-background-color='#f2d5cf'
|
|
||||||
cursor-colors-set=true
|
|
||||||
cursor-foreground-color='#303446'
|
|
||||||
font='Monospace 13'
|
|
||||||
foreground-color='#c6d0f5'
|
|
||||||
highlight-background-color='#303446'
|
|
||||||
highlight-colors-set=true
|
|
||||||
highlight-foreground-color='#626880'
|
|
||||||
palette=['#51576d', '#e78284', '#a6d189', '#e5c890', '#8caaee', '#f4b8e4', '#81c8be', '#b5bfe2', '#626880', '#e78284', '#a6d189', '#e5c890', '#8caaee', '#f4b8e4', '#81c8be', '#a5adce']
|
|
||||||
use-system-font=false
|
|
||||||
use-theme-colors=false
|
|
||||||
visible-name='nezia'
|
|
||||||
custom-command='tmux'
|
|
||||||
|
|
||||||
[tweaks]
|
|
||||||
show-extensions-notice=false
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
#
|
|
||||||
# ~/.bash_profile
|
|
||||||
#
|
|
||||||
|
|
||||||
[[ -f ~/.bashrc ]] && . ~/.bashrc
|
|
||||||
. "$HOME/.cargo/env"
|
|
11
dot_bashrc
11
dot_bashrc
|
@ -1,11 +0,0 @@
|
||||||
#
|
|
||||||
# ~/.bashrc
|
|
||||||
#
|
|
||||||
|
|
||||||
# if running interactively, run fish
|
|
||||||
if [[ $(ps --no-header --pid=$PPID --format=comm) != "fish" && -z ${BASH_EXECUTION_STRING} ]]
|
|
||||||
then
|
|
||||||
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=''
|
|
||||||
exec fish $LOGIN_OPTION
|
|
||||||
fi
|
|
||||||
. "$HOME/.cargo/env"
|
|
|
@ -1,18 +0,0 @@
|
||||||
[global]
|
|
||||||
frame_color = "#89B4FA"
|
|
||||||
separator_color= frame
|
|
||||||
font = "monospace 11"
|
|
||||||
|
|
||||||
[urgency_low]
|
|
||||||
background = "#1E1E2E"
|
|
||||||
foreground = "#CDD6F4"
|
|
||||||
|
|
||||||
[urgency_normal]
|
|
||||||
background = "#1E1E2E"
|
|
||||||
foreground = "#CDD6F4"
|
|
||||||
|
|
||||||
[urgency_critical]
|
|
||||||
background = "#1E1E2E"
|
|
||||||
foreground = "#CDD6F4"
|
|
||||||
frame_color = "#FAB387"
|
|
||||||
|
|
|
@ -1,235 +0,0 @@
|
||||||
# fish completion for chezmoi -*- shell-script -*-
|
|
||||||
|
|
||||||
function __chezmoi_debug
|
|
||||||
set -l file "$BASH_COMP_DEBUG_FILE"
|
|
||||||
if test -n "$file"
|
|
||||||
echo "$argv" >> $file
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function __chezmoi_perform_completion
|
|
||||||
__chezmoi_debug "Starting __chezmoi_perform_completion"
|
|
||||||
|
|
||||||
# Extract all args except the last one
|
|
||||||
set -l args (commandline -opc)
|
|
||||||
# Extract the last arg and escape it in case it is a space
|
|
||||||
set -l lastArg (string escape -- (commandline -ct))
|
|
||||||
|
|
||||||
__chezmoi_debug "args: $args"
|
|
||||||
__chezmoi_debug "last arg: $lastArg"
|
|
||||||
|
|
||||||
# Disable ActiveHelp which is not supported for fish shell
|
|
||||||
set -l requestComp "CHEZMOI_ACTIVE_HELP=0 $args[1] __complete $args[2..-1] $lastArg"
|
|
||||||
|
|
||||||
__chezmoi_debug "Calling $requestComp"
|
|
||||||
set -l results (eval $requestComp 2> /dev/null)
|
|
||||||
|
|
||||||
# Some programs may output extra empty lines after the directive.
|
|
||||||
# Let's ignore them or else it will break completion.
|
|
||||||
# Ref: https://github.com/spf13/cobra/issues/1279
|
|
||||||
for line in $results[-1..1]
|
|
||||||
if test (string trim -- $line) = ""
|
|
||||||
# Found an empty line, remove it
|
|
||||||
set results $results[1..-2]
|
|
||||||
else
|
|
||||||
# Found non-empty line, we have our proper output
|
|
||||||
break
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l comps $results[1..-2]
|
|
||||||
set -l directiveLine $results[-1]
|
|
||||||
|
|
||||||
# For Fish, when completing a flag with an = (e.g., <program> -n=<TAB>)
|
|
||||||
# completions must be prefixed with the flag
|
|
||||||
set -l flagPrefix (string match -r -- '-.*=' "$lastArg")
|
|
||||||
|
|
||||||
__chezmoi_debug "Comps: $comps"
|
|
||||||
__chezmoi_debug "DirectiveLine: $directiveLine"
|
|
||||||
__chezmoi_debug "flagPrefix: $flagPrefix"
|
|
||||||
|
|
||||||
for comp in $comps
|
|
||||||
printf "%s%s\n" "$flagPrefix" "$comp"
|
|
||||||
end
|
|
||||||
|
|
||||||
printf "%s\n" "$directiveLine"
|
|
||||||
end
|
|
||||||
|
|
||||||
# this function limits calls to __chezmoi_perform_completion, by caching the result behind $__chezmoi_perform_completion_once_result
|
|
||||||
function __chezmoi_perform_completion_once
|
|
||||||
__chezmoi_debug "Starting __chezmoi_perform_completion_once"
|
|
||||||
|
|
||||||
if test -n "$__chezmoi_perform_completion_once_result"
|
|
||||||
__chezmoi_debug "Seems like a valid result already exists, skipping __chezmoi_perform_completion"
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
set --global __chezmoi_perform_completion_once_result (__chezmoi_perform_completion)
|
|
||||||
if test -z "$__chezmoi_perform_completion_once_result"
|
|
||||||
__chezmoi_debug "No completions, probably due to a failure"
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
__chezmoi_debug "Performed completions and set __chezmoi_perform_completion_once_result"
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
# this function is used to clear the $__chezmoi_perform_completion_once_result variable after completions are run
|
|
||||||
function __chezmoi_clear_perform_completion_once_result
|
|
||||||
__chezmoi_debug ""
|
|
||||||
__chezmoi_debug "========= clearing previously set __chezmoi_perform_completion_once_result variable =========="
|
|
||||||
set --erase __chezmoi_perform_completion_once_result
|
|
||||||
__chezmoi_debug "Successfully erased the variable __chezmoi_perform_completion_once_result"
|
|
||||||
end
|
|
||||||
|
|
||||||
function __chezmoi_requires_order_preservation
|
|
||||||
__chezmoi_debug ""
|
|
||||||
__chezmoi_debug "========= checking if order preservation is required =========="
|
|
||||||
|
|
||||||
__chezmoi_perform_completion_once
|
|
||||||
if test -z "$__chezmoi_perform_completion_once_result"
|
|
||||||
__chezmoi_debug "Error determining if order preservation is required"
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l directive (string sub --start 2 $__chezmoi_perform_completion_once_result[-1])
|
|
||||||
__chezmoi_debug "Directive is: $directive"
|
|
||||||
|
|
||||||
set -l shellCompDirectiveKeepOrder 32
|
|
||||||
set -l keeporder (math (math --scale 0 $directive / $shellCompDirectiveKeepOrder) % 2)
|
|
||||||
__chezmoi_debug "Keeporder is: $keeporder"
|
|
||||||
|
|
||||||
if test $keeporder -ne 0
|
|
||||||
__chezmoi_debug "This does require order preservation"
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
__chezmoi_debug "This doesn't require order preservation"
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
# This function does two things:
|
|
||||||
# - Obtain the completions and store them in the global __chezmoi_comp_results
|
|
||||||
# - Return false if file completion should be performed
|
|
||||||
function __chezmoi_prepare_completions
|
|
||||||
__chezmoi_debug ""
|
|
||||||
__chezmoi_debug "========= starting completion logic =========="
|
|
||||||
|
|
||||||
# Start fresh
|
|
||||||
set --erase __chezmoi_comp_results
|
|
||||||
|
|
||||||
__chezmoi_perform_completion_once
|
|
||||||
__chezmoi_debug "Completion results: $__chezmoi_perform_completion_once_result"
|
|
||||||
|
|
||||||
if test -z "$__chezmoi_perform_completion_once_result"
|
|
||||||
__chezmoi_debug "No completion, probably due to a failure"
|
|
||||||
# Might as well do file completion, in case it helps
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l directive (string sub --start 2 $__chezmoi_perform_completion_once_result[-1])
|
|
||||||
set --global __chezmoi_comp_results $__chezmoi_perform_completion_once_result[1..-2]
|
|
||||||
|
|
||||||
__chezmoi_debug "Completions are: $__chezmoi_comp_results"
|
|
||||||
__chezmoi_debug "Directive is: $directive"
|
|
||||||
|
|
||||||
set -l shellCompDirectiveError 1
|
|
||||||
set -l shellCompDirectiveNoSpace 2
|
|
||||||
set -l shellCompDirectiveNoFileComp 4
|
|
||||||
set -l shellCompDirectiveFilterFileExt 8
|
|
||||||
set -l shellCompDirectiveFilterDirs 16
|
|
||||||
|
|
||||||
if test -z "$directive"
|
|
||||||
set directive 0
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l compErr (math (math --scale 0 $directive / $shellCompDirectiveError) % 2)
|
|
||||||
if test $compErr -eq 1
|
|
||||||
__chezmoi_debug "Received error directive: aborting."
|
|
||||||
# Might as well do file completion, in case it helps
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l filefilter (math (math --scale 0 $directive / $shellCompDirectiveFilterFileExt) % 2)
|
|
||||||
set -l dirfilter (math (math --scale 0 $directive / $shellCompDirectiveFilterDirs) % 2)
|
|
||||||
if test $filefilter -eq 1; or test $dirfilter -eq 1
|
|
||||||
__chezmoi_debug "File extension filtering or directory filtering not supported"
|
|
||||||
# Do full file completion instead
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
|
|
||||||
set -l nospace (math (math --scale 0 $directive / $shellCompDirectiveNoSpace) % 2)
|
|
||||||
set -l nofiles (math (math --scale 0 $directive / $shellCompDirectiveNoFileComp) % 2)
|
|
||||||
|
|
||||||
__chezmoi_debug "nospace: $nospace, nofiles: $nofiles"
|
|
||||||
|
|
||||||
# If we want to prevent a space, or if file completion is NOT disabled,
|
|
||||||
# we need to count the number of valid completions.
|
|
||||||
# To do so, we will filter on prefix as the completions we have received
|
|
||||||
# may not already be filtered so as to allow fish to match on different
|
|
||||||
# criteria than the prefix.
|
|
||||||
if test $nospace -ne 0; or test $nofiles -eq 0
|
|
||||||
set -l prefix (commandline -t | string escape --style=regex)
|
|
||||||
__chezmoi_debug "prefix: $prefix"
|
|
||||||
|
|
||||||
set -l completions (string match -r -- "^$prefix.*" $__chezmoi_comp_results)
|
|
||||||
set --global __chezmoi_comp_results $completions
|
|
||||||
__chezmoi_debug "Filtered completions are: $__chezmoi_comp_results"
|
|
||||||
|
|
||||||
# Important not to quote the variable for count to work
|
|
||||||
set -l numComps (count $__chezmoi_comp_results)
|
|
||||||
__chezmoi_debug "numComps: $numComps"
|
|
||||||
|
|
||||||
if test $numComps -eq 1; and test $nospace -ne 0
|
|
||||||
# We must first split on \t to get rid of the descriptions to be
|
|
||||||
# able to check what the actual completion will be.
|
|
||||||
# We don't need descriptions anyway since there is only a single
|
|
||||||
# real completion which the shell will expand immediately.
|
|
||||||
set -l split (string split --max 1 \t $__chezmoi_comp_results[1])
|
|
||||||
|
|
||||||
# Fish won't add a space if the completion ends with any
|
|
||||||
# of the following characters: @=/:.,
|
|
||||||
set -l lastChar (string sub -s -1 -- $split)
|
|
||||||
if not string match -r -q "[@=/:.,]" -- "$lastChar"
|
|
||||||
# In other cases, to support the "nospace" directive we trick the shell
|
|
||||||
# by outputting an extra, longer completion.
|
|
||||||
__chezmoi_debug "Adding second completion to perform nospace directive"
|
|
||||||
set --global __chezmoi_comp_results $split[1] $split[1].
|
|
||||||
__chezmoi_debug "Completions are now: $__chezmoi_comp_results"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if test $numComps -eq 0; and test $nofiles -eq 0
|
|
||||||
# To be consistent with bash and zsh, we only trigger file
|
|
||||||
# completion when there are no other completions
|
|
||||||
__chezmoi_debug "Requesting file completion"
|
|
||||||
return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return 0
|
|
||||||
end
|
|
||||||
|
|
||||||
# Since Fish completions are only loaded once the user triggers them, we trigger them ourselves
|
|
||||||
# so we can properly delete any completions provided by another script.
|
|
||||||
# Only do this if the program can be found, or else fish may print some errors; besides,
|
|
||||||
# the existing completions will only be loaded if the program can be found.
|
|
||||||
if type -q "chezmoi"
|
|
||||||
# The space after the program name is essential to trigger completion for the program
|
|
||||||
# and not completion of the program name itself.
|
|
||||||
# Also, we use '> /dev/null 2>&1' since '&>' is not supported in older versions of fish.
|
|
||||||
complete --do-complete "chezmoi " > /dev/null 2>&1
|
|
||||||
end
|
|
||||||
|
|
||||||
# Remove any pre-existing completions for the program since we will be handling all of them.
|
|
||||||
complete -c chezmoi -e
|
|
||||||
|
|
||||||
# this will get called after the two calls below and clear the $__chezmoi_perform_completion_once_result global
|
|
||||||
complete -c chezmoi -n '__chezmoi_clear_perform_completion_once_result'
|
|
||||||
# The call to __chezmoi_prepare_completions will setup __chezmoi_comp_results
|
|
||||||
# which provides the program's completion choices.
|
|
||||||
# If this doesn't require order preservation, we don't use the -k flag
|
|
||||||
complete -c chezmoi -n 'not __chezmoi_requires_order_preservation && __chezmoi_prepare_completions' -f -a '$__chezmoi_comp_results'
|
|
||||||
# otherwise we use the -k flag
|
|
||||||
complete -k -c chezmoi -n '__chezmoi_requires_order_preservation && __chezmoi_prepare_completions' -f -a '$__chezmoi_comp_results'
|
|
|
@ -1,7 +0,0 @@
|
||||||
complete --command fisher --exclusive --long help --description "Print help"
|
|
||||||
complete --command fisher --exclusive --long version --description "Print version"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments install --description "Install plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments update --description "Update installed plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments remove --description "Remove installed plugins"
|
|
||||||
complete --command fisher --exclusive --condition __fish_use_subcommand --arguments list --description "List installed plugins matching regex"
|
|
||||||
complete --command fisher --exclusive --condition "__fish_seen_subcommand_from update remove" --arguments "(fisher list)"
|
|
|
@ -1,2 +0,0 @@
|
||||||
abbr -a -- code codium
|
|
||||||
abbr -a -- cd z
|
|
|
@ -1 +0,0 @@
|
||||||
source ~/.asdf/asdf.fish
|
|
|
@ -1 +0,0 @@
|
||||||
source ~/.asdf/plugins/golang/set-env.fish
|
|
|
@ -1 +0,0 @@
|
||||||
set -g fish_greeting
|
|
|
@ -1,7 +0,0 @@
|
||||||
if status is-interactive
|
|
||||||
keychain --quiet -Q id_ed25519
|
|
||||||
end
|
|
||||||
|
|
||||||
if test -f ~/.keychain/$hostname-fish
|
|
||||||
source ~/.keychain/$hostname-fish
|
|
||||||
end
|
|
|
@ -1 +0,0 @@
|
||||||
fish_add_path ~/bin ~/.local/bin
|
|
|
@ -1,2 +0,0 @@
|
||||||
# Created by `pipx` on 2023-08-28 08:41:19
|
|
||||||
set PATH $PATH /home/nezia/.local/bin
|
|
|
@ -1 +0,0 @@
|
||||||
starship init fish | source
|
|
|
@ -1,2 +0,0 @@
|
||||||
set -q MY_THEME; or set -gx MY_THEME "Catppuccin Frappe"
|
|
||||||
fish_config theme choose $MY_THEME
|
|
|
@ -1,7 +0,0 @@
|
||||||
if status is-interactive
|
|
||||||
and not set -q TMUX
|
|
||||||
if command -v tmux > /dev/null
|
|
||||||
exec tmux new-session -As base
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
fish_vi_key_bindings
|
|
|
@ -1 +0,0 @@
|
||||||
zoxide init fish | source
|
|
|
@ -1,3 +0,0 @@
|
||||||
catppuccin/fish
|
|
||||||
jorgebucaran/nvm.fish
|
|
||||||
patrickf1/fzf.fish
|
|
|
@ -1,2 +0,0 @@
|
||||||
function fish_mode_prompt
|
|
||||||
end
|
|
|
@ -1,240 +0,0 @@
|
||||||
function fisher --argument-names cmd --description "A plugin manager for Fish"
|
|
||||||
set --query fisher_path || set --local fisher_path $__fish_config_dir
|
|
||||||
set --local fisher_version 4.4.4
|
|
||||||
set --local fish_plugins $__fish_config_dir/fish_plugins
|
|
||||||
|
|
||||||
switch "$cmd"
|
|
||||||
case -v --version
|
|
||||||
echo "fisher, version $fisher_version"
|
|
||||||
case "" -h --help
|
|
||||||
echo "Usage: fisher install <plugins...> Install plugins"
|
|
||||||
echo " fisher remove <plugins...> Remove installed plugins"
|
|
||||||
echo " fisher update <plugins...> Update installed plugins"
|
|
||||||
echo " fisher update Update all installed plugins"
|
|
||||||
echo " fisher list [<regex>] List installed plugins matching regex"
|
|
||||||
echo "Options:"
|
|
||||||
echo " -v, --version Print version"
|
|
||||||
echo " -h, --help Print this help message"
|
|
||||||
echo "Variables:"
|
|
||||||
echo " \$fisher_path Plugin installation path. Default: $__fish_config_dir" | string replace --regex -- $HOME \~
|
|
||||||
case ls list
|
|
||||||
string match --entire --regex -- "$argv[2]" $_fisher_plugins
|
|
||||||
case install update remove
|
|
||||||
isatty || read --local --null --array stdin && set --append argv $stdin
|
|
||||||
|
|
||||||
set --local install_plugins
|
|
||||||
set --local update_plugins
|
|
||||||
set --local remove_plugins
|
|
||||||
set --local arg_plugins $argv[2..-1]
|
|
||||||
set --local old_plugins $_fisher_plugins
|
|
||||||
set --local new_plugins
|
|
||||||
|
|
||||||
test -e $fish_plugins && set --local file_plugins (string match --regex -- '^[^\s]+$' <$fish_plugins)
|
|
||||||
|
|
||||||
if ! set --query argv[2]
|
|
||||||
if test "$cmd" != update
|
|
||||||
echo "fisher: Not enough arguments for command: \"$cmd\"" >&2 && return 1
|
|
||||||
else if ! set --query file_plugins
|
|
||||||
echo "fisher: \"$fish_plugins\" file not found: \"$cmd\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
set arg_plugins $file_plugins
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $arg_plugins
|
|
||||||
set plugin (test -e "$plugin" && realpath $plugin || string lower -- $plugin)
|
|
||||||
contains -- "$plugin" $new_plugins || set --append new_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query argv[2]
|
|
||||||
for plugin in $new_plugins
|
|
||||||
if contains -- "$plugin" $old_plugins
|
|
||||||
test "$cmd" = remove &&
|
|
||||||
set --append remove_plugins $plugin ||
|
|
||||||
set --append update_plugins $plugin
|
|
||||||
else if test "$cmd" = install
|
|
||||||
set --append install_plugins $plugin
|
|
||||||
else
|
|
||||||
echo "fisher: Plugin not installed: \"$plugin\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
else
|
|
||||||
for plugin in $new_plugins
|
|
||||||
contains -- "$plugin" $old_plugins &&
|
|
||||||
set --append update_plugins $plugin ||
|
|
||||||
set --append install_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $old_plugins
|
|
||||||
contains -- "$plugin" $new_plugins || set --append remove_plugins $plugin
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local pid_list
|
|
||||||
set --local source_plugins
|
|
||||||
set --local fetch_plugins $update_plugins $install_plugins
|
|
||||||
set --local fish_path (status fish-path)
|
|
||||||
|
|
||||||
echo (set_color --bold)fisher $cmd version $fisher_version(set_color normal)
|
|
||||||
|
|
||||||
for plugin in $fetch_plugins
|
|
||||||
set --local source (command mktemp -d)
|
|
||||||
set --append source_plugins $source
|
|
||||||
|
|
||||||
command mkdir -p $source/{completions,conf.d,themes,functions}
|
|
||||||
|
|
||||||
$fish_path --command "
|
|
||||||
if test -e $plugin
|
|
||||||
command cp -Rf $plugin/* $source
|
|
||||||
else
|
|
||||||
set temp (command mktemp -d)
|
|
||||||
set repo (string split -- \@ $plugin) || set repo[2] HEAD
|
|
||||||
|
|
||||||
if set path (string replace --regex -- '^(https://)?gitlab.com/' '' \$repo[1])
|
|
||||||
set name (string split -- / \$path)[-1]
|
|
||||||
set url https://gitlab.com/\$path/-/archive/\$repo[2]/\$name-\$repo[2].tar.gz
|
|
||||||
else
|
|
||||||
set url https://api.github.com/repos/\$repo[1]/tarball/\$repo[2]
|
|
||||||
end
|
|
||||||
|
|
||||||
echo Fetching (set_color --underline)\$url(set_color normal)
|
|
||||||
|
|
||||||
if command curl -q --silent -L \$url | command tar -xzC \$temp -f - 2>/dev/null
|
|
||||||
command cp -Rf \$temp/*/* $source
|
|
||||||
else
|
|
||||||
echo fisher: Invalid plugin name or host unavailable: \\\"$plugin\\\" >&2
|
|
||||||
command rm -rf $source
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf \$temp
|
|
||||||
end
|
|
||||||
|
|
||||||
set files $source/* && string match --quiet --regex -- .+\.fish\\\$ \$files
|
|
||||||
" &
|
|
||||||
|
|
||||||
set --append pid_list (jobs --last --pid)
|
|
||||||
end
|
|
||||||
|
|
||||||
wait $pid_list 2>/dev/null
|
|
||||||
|
|
||||||
for plugin in $fetch_plugins
|
|
||||||
if set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)] && test ! -e $source
|
|
||||||
if set --local index (contains --index -- "$plugin" $install_plugins)
|
|
||||||
set --erase install_plugins[$index]
|
|
||||||
else
|
|
||||||
set --erase update_plugins[(contains --index -- "$plugin" $update_plugins)]
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $update_plugins $remove_plugins
|
|
||||||
if set --local index (contains --index -- "$plugin" $_fisher_plugins)
|
|
||||||
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
|
|
||||||
|
|
||||||
if contains -- "$plugin" $remove_plugins
|
|
||||||
for name in (string replace --filter --regex -- '.+/conf\.d/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
emit {$name}_uninstall
|
|
||||||
end
|
|
||||||
printf "%s\n" Removing\ (set_color red --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
|
|
||||||
set --erase _fisher_plugins[$index]
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf (string replace -- \~ ~ $$plugin_files_var)
|
|
||||||
|
|
||||||
functions --erase (string replace --filter --regex -- '.+/functions/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
|
|
||||||
for name in (string replace --filter --regex -- '.+/completions/([^/]+)\.fish$' '$1' $$plugin_files_var)
|
|
||||||
complete --erase --command $name
|
|
||||||
end
|
|
||||||
|
|
||||||
set --erase $plugin_files_var
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query update_plugins[1] || set --query install_plugins[1]
|
|
||||||
command mkdir -p $fisher_path/{functions,themes,conf.d,completions}
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $update_plugins $install_plugins
|
|
||||||
set --local source $source_plugins[(contains --index -- "$plugin" $fetch_plugins)]
|
|
||||||
set --local files $source/{functions,themes,conf.d,completions}/*
|
|
||||||
|
|
||||||
if set --local index (contains --index -- $plugin $install_plugins)
|
|
||||||
set --local user_files $fisher_path/{functions,themes,conf.d,completions}/*
|
|
||||||
set --local conflict_files
|
|
||||||
|
|
||||||
for file in (string replace -- $source/ $fisher_path/ $files)
|
|
||||||
contains -- $file $user_files && set --append conflict_files $file
|
|
||||||
end
|
|
||||||
|
|
||||||
if set --query conflict_files[1] && set --erase install_plugins[$index]
|
|
||||||
echo -s "fisher: Cannot install \"$plugin\": please remove or move conflicting files first:" \n" "$conflict_files >&2
|
|
||||||
continue
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
for file in (string replace -- $source/ "" $files)
|
|
||||||
command cp -RLf $source/$file $fisher_path/$file
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local plugin_files_var _fisher_(string escape --style=var -- $plugin)_files
|
|
||||||
|
|
||||||
set --query files[1] && set --universal $plugin_files_var (string replace -- $source $fisher_path $files | string replace -- ~ \~)
|
|
||||||
|
|
||||||
contains -- $plugin $_fisher_plugins || set --universal --append _fisher_plugins $plugin
|
|
||||||
contains -- $plugin $install_plugins && set --local event install || set --local event update
|
|
||||||
|
|
||||||
printf "%s\n" Installing\ (set_color --bold)$plugin(set_color normal) " "$$plugin_files_var | string replace -- \~ ~
|
|
||||||
|
|
||||||
for file in (string match --regex -- '.+/[^/]+\.fish$' $$plugin_files_var | string replace -- \~ ~)
|
|
||||||
source $file
|
|
||||||
if set --local name (string replace --regex -- '.+conf\.d/([^/]+)\.fish$' '$1' $file)
|
|
||||||
emit {$name}_$event
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
command rm -rf $source_plugins
|
|
||||||
|
|
||||||
if set --query _fisher_plugins[1]
|
|
||||||
set --local commit_plugins
|
|
||||||
|
|
||||||
for plugin in $file_plugins
|
|
||||||
contains -- (string lower -- $plugin) (string lower -- $_fisher_plugins) && set --append commit_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
for plugin in $_fisher_plugins
|
|
||||||
contains -- (string lower -- $plugin) (string lower -- $commit_plugins) || set --append commit_plugins $plugin
|
|
||||||
end
|
|
||||||
|
|
||||||
printf "%s\n" $commit_plugins >$fish_plugins
|
|
||||||
else
|
|
||||||
set --erase _fisher_plugins
|
|
||||||
command rm -f $fish_plugins
|
|
||||||
end
|
|
||||||
|
|
||||||
set --local total (count $install_plugins) (count $update_plugins) (count $remove_plugins)
|
|
||||||
|
|
||||||
test "$total" != "0 0 0" && echo (string join ", " (
|
|
||||||
test $total[1] = 0 || echo "Installed $total[1]") (
|
|
||||||
test $total[2] = 0 || echo "Updated $total[2]") (
|
|
||||||
test $total[3] = 0 || echo "Removed $total[3]")
|
|
||||||
) plugin/s
|
|
||||||
case \*
|
|
||||||
echo "fisher: Unknown command: \"$cmd\"" >&2 && return 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if ! set --query _fisher_upgraded_to_4_4
|
|
||||||
set --universal _fisher_upgraded_to_4_4
|
|
||||||
if functions --query _fisher_list
|
|
||||||
set --query XDG_DATA_HOME[1] || set --local XDG_DATA_HOME ~/.local/share
|
|
||||||
command rm -rf $XDG_DATA_HOME/fisher
|
|
||||||
functions --erase _fisher_{list,plugin_parse}
|
|
||||||
fisher update >/dev/null 2>/dev/null
|
|
||||||
else
|
|
||||||
for var in (set --names | string match --entire --regex '^_fisher_.+_files$')
|
|
||||||
set $var (string replace -- ~ \~ $$var)
|
|
||||||
end
|
|
||||||
functions --erase _fisher_fish_postexec
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,13 +0,0 @@
|
||||||
<?xml version='1.0'?>
|
|
||||||
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
|
|
||||||
<fontconfig>
|
|
||||||
<alias>
|
|
||||||
<family>sans-serif</family>
|
|
||||||
<prefer>
|
|
||||||
<family>Noto Sans</family>
|
|
||||||
<family>Noto Color Emoji</family>
|
|
||||||
<family>Noto Emoji</family>
|
|
||||||
</prefer>
|
|
||||||
</alias>
|
|
||||||
</fontconfig>
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
|
||||||
<fontconfig>
|
|
||||||
<match target="scan">
|
|
||||||
<test name="family" compare="contains">
|
|
||||||
<string>Monaspace</string>
|
|
||||||
</test>
|
|
||||||
<edit name="spacing">
|
|
||||||
<const>dual</const>
|
|
||||||
</edit>
|
|
||||||
</match>
|
|
||||||
</fontconfig>
|
|
|
@ -1,14 +0,0 @@
|
||||||
<?xml version='1.0'?>
|
|
||||||
<!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
|
|
||||||
<fontconfig>
|
|
||||||
<alias>
|
|
||||||
<family>serif</family>
|
|
||||||
<prefer>
|
|
||||||
<family>Noto Serif</family>
|
|
||||||
<family>Noto Color Emoji</family>
|
|
||||||
<family>Noto Emoji</family>
|
|
||||||
<family>DejaVu Serif</family>
|
|
||||||
</prefer>
|
|
||||||
</alias>
|
|
||||||
</fontconfig>
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
|
||||||
<fontconfig>
|
|
||||||
<alias>
|
|
||||||
<family>monospace</family>
|
|
||||||
<prefer>
|
|
||||||
<family>Monaspace Neon</family>
|
|
||||||
</prefer>
|
|
||||||
</alias>
|
|
||||||
</fontconfig>
|
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
<?xml version="1.0"?>
|
|
||||||
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
|
|
||||||
<fontconfig>
|
|
||||||
<alias>
|
|
||||||
<family>sans-serif</family>
|
|
||||||
<prefer>
|
|
||||||
<family>Twemoji</family>
|
|
||||||
</prefer>
|
|
||||||
</alias>
|
|
||||||
</fontconfig>
|
|
|
@ -1,17 +0,0 @@
|
||||||
[Settings]
|
|
||||||
gtk-theme-name=Catppuccin-Mocha-Standard-Lavender-dark
|
|
||||||
gtk-icon-theme-name=Papirus-Dark
|
|
||||||
gtk-font-name=Cantarell 11
|
|
||||||
gtk-cursor-theme-name=Adwaita
|
|
||||||
gtk-cursor-theme-size=24
|
|
||||||
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
|
||||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
|
||||||
gtk-button-images=0
|
|
||||||
gtk-menu-images=0
|
|
||||||
gtk-enable-event-sounds=1
|
|
||||||
gtk-enable-input-feedback-sounds=0
|
|
||||||
gtk-xft-antialias=1
|
|
||||||
gtk-xft-hinting=1
|
|
||||||
gtk-xft-hintstyle=hintfull
|
|
||||||
gtk-xft-rgba=rgb
|
|
||||||
gtk-application-prefer-dark-theme=1
|
|
|
@ -1,61 +0,0 @@
|
||||||
$rosewaterAlpha = fff5e0dc
|
|
||||||
$flamingoAlpha = fff2cdcd
|
|
||||||
$pinkAlpha = fff5c2e7
|
|
||||||
$mauveAlpha = ffcba6f7
|
|
||||||
$redAlpha = fff38ba8
|
|
||||||
$maroonAlpha = ffeba0ac
|
|
||||||
$peachAlpha = fffab387
|
|
||||||
$yellowAlpha = fff9e2af
|
|
||||||
$greenAlpha = ffa6e3a1
|
|
||||||
$tealAlpha = ff94e2d5
|
|
||||||
$skyAlpha = ff89dceb
|
|
||||||
$sapphireAlpha = ff74c7ec
|
|
||||||
$blueAlpha = ff89b4fa
|
|
||||||
$lavenderAlpha = ffb4befe
|
|
||||||
|
|
||||||
$textAlpha = ffcdd6f4
|
|
||||||
$subtext1Alpha = ffbac2de
|
|
||||||
$subtext0Alpha = ffa6adc8
|
|
||||||
|
|
||||||
$overlay2Alpha = ff9399b2
|
|
||||||
$overlay1Alpha = ff7f849c
|
|
||||||
$overlay0Alpha = ff6c7086
|
|
||||||
|
|
||||||
$surface2Alpha = ff585b70
|
|
||||||
$surface1Alpha = ff45475a
|
|
||||||
$surface0Alpha = ff313244
|
|
||||||
|
|
||||||
$baseAlpha = ff1e1e2e
|
|
||||||
$mantleAlpha = ff181825
|
|
||||||
$crustAlpha = ff11111b
|
|
||||||
|
|
||||||
$rosewater = 0xfff5e0dc
|
|
||||||
$flamingo = 0xfff2cdcd
|
|
||||||
$pink = 0xfff5c2e7
|
|
||||||
$mauve = 0xffcba6f7
|
|
||||||
$red = 0xfff38ba8
|
|
||||||
$maroon = 0xffeba0ac
|
|
||||||
$peach = 0xfffab387
|
|
||||||
$yellow = 0xfff9e2af
|
|
||||||
$green = 0xffa6e3a1
|
|
||||||
$teal = 0xff94e2d5
|
|
||||||
$sky = 0xff89dceb
|
|
||||||
$sapphire = 0xff74c7ec
|
|
||||||
$blue = 0xff89b4fa
|
|
||||||
$lavender = 0xffb4befe
|
|
||||||
|
|
||||||
$text = 0xffcdd6f4
|
|
||||||
$subtext1 = 0xffbac2de
|
|
||||||
$subtext0 = 0xffa6adc8
|
|
||||||
|
|
||||||
$overlay2 = 0xff9399b2
|
|
||||||
$overlay1 = 0xff7f849c
|
|
||||||
$overlay0 = 0xff6c7086
|
|
||||||
|
|
||||||
$surface2 = 0xff585b70
|
|
||||||
$surface1 = 0xff45475a
|
|
||||||
$surface0 = 0xff313244
|
|
||||||
|
|
||||||
$base = 0xff1e1e2e
|
|
||||||
$mantle = 0xff181825
|
|
||||||
$crust = 0xff11111b
|
|
|
@ -1,197 +0,0 @@
|
||||||
# This is an example Hyprland config file.
|
|
||||||
#
|
|
||||||
# Refer to the wiki for more information.
|
|
||||||
|
|
||||||
#
|
|
||||||
# Please note not all available settings / options are set here.
|
|
||||||
# For a full list, see the wiki
|
|
||||||
#
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Monitors/
|
|
||||||
monitor=,preferred,auto,auto
|
|
||||||
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
||||||
|
|
||||||
# Execute your favorite apps at launch
|
|
||||||
# exec-once = waybar & hyprpaper & firefox
|
|
||||||
|
|
||||||
# Source a file (multi-file configs)
|
|
||||||
# source = ~/.config/hypr/myColors.conf
|
|
||||||
|
|
||||||
# Some default env vars.
|
|
||||||
env = XCURSOR_SIZE,24
|
|
||||||
|
|
||||||
source=~/.config/hypr/mocha.conf
|
|
||||||
|
|
||||||
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
|
|
||||||
input {
|
|
||||||
kb_layout = us
|
|
||||||
kb_variant =
|
|
||||||
kb_model =
|
|
||||||
kb_options = compose:ralt, caps:ctrl_modifier
|
|
||||||
kb_rules =
|
|
||||||
|
|
||||||
follow_mouse = 1
|
|
||||||
|
|
||||||
touchpad {
|
|
||||||
natural_scroll = true
|
|
||||||
}
|
|
||||||
|
|
||||||
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
|
||||||
}
|
|
||||||
|
|
||||||
general {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
|
|
||||||
gaps_in = 5
|
|
||||||
gaps_out = 20
|
|
||||||
border_size = 3
|
|
||||||
col.active_border = $lavender
|
|
||||||
col.inactive_border = $overlay0
|
|
||||||
layout = dwindle
|
|
||||||
}
|
|
||||||
|
|
||||||
decoration {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
|
|
||||||
rounding = 5
|
|
||||||
blur = false
|
|
||||||
blur_size = 3
|
|
||||||
blur_passes = 1
|
|
||||||
blur_new_optimizations = true
|
|
||||||
drop_shadow = false
|
|
||||||
shadow_range = 4
|
|
||||||
shadow_render_power = 3
|
|
||||||
col.shadow = rgba(1a1a1aee)
|
|
||||||
}
|
|
||||||
|
|
||||||
animations {
|
|
||||||
enabled = true
|
|
||||||
|
|
||||||
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
|
|
||||||
|
|
||||||
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
|
||||||
|
|
||||||
animation = windows, 1, 7, myBezier
|
|
||||||
animation = windowsOut, 1, 7, default, popin 80%
|
|
||||||
animation = border, 1, 10, default
|
|
||||||
animation = borderangle, 1, 8, default
|
|
||||||
animation = fade, 1, 7, default
|
|
||||||
animation = workspaces, 1, 6, default
|
|
||||||
}
|
|
||||||
|
|
||||||
dwindle {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
|
|
||||||
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
|
||||||
preserve_split = true # you probably want this
|
|
||||||
}
|
|
||||||
|
|
||||||
master {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
|
|
||||||
new_is_master = true
|
|
||||||
}
|
|
||||||
|
|
||||||
gestures {
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
|
||||||
workspace_swipe = true
|
|
||||||
}
|
|
||||||
|
|
||||||
# Example per-device config
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
|
|
||||||
device:epic-mouse-v1 {
|
|
||||||
sensitivity = -0.5
|
|
||||||
}
|
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
||||||
$mainMod = SUPER
|
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
|
||||||
bind = $mainMod, Q, exec, kitty
|
|
||||||
bind = $mainMod, C, killactive,
|
|
||||||
bind = $mainMod, M, exit,
|
|
||||||
bind = $mainMod, E, exec, $VISUAL
|
|
||||||
bind = $mainMod, W, exec, firefox
|
|
||||||
bind = $mainMod, V, togglefloating,
|
|
||||||
bind = $mainMod, R, exec, wofi --show drun -I
|
|
||||||
bind = $mainMod, P, exec, $HOME/.scripts/passwmenu
|
|
||||||
bind = $mainMod, J, togglesplit, # dwindle
|
|
||||||
bind = $mainMod, F, fullscreen
|
|
||||||
bind = $mainMod_SHIFT, W, exec, ~/.scripts/wwifi.sh
|
|
||||||
bind = $mainMod_SHIFT, Q, exit
|
|
||||||
# Move focus with mainMod + arrow keys
|
|
||||||
bind = $mainMod, left, movefocus, l
|
|
||||||
bind = $mainMod, right, movefocus, r
|
|
||||||
bind = $mainMod, up, movefocus, u
|
|
||||||
bind = $mainMod, down, movefocus, d
|
|
||||||
|
|
||||||
# Switch workspaces with mainMod + [0-9]
|
|
||||||
bind = $mainMod, 1, workspace, 1
|
|
||||||
bind = $mainMod, 2, workspace, 2
|
|
||||||
bind = $mainMod, 3, workspace, 3
|
|
||||||
bind = $mainMod, 4, workspace, 4
|
|
||||||
bind = $mainMod, 5, workspace, 5
|
|
||||||
bind = $mainMod, 6, workspace, 6
|
|
||||||
bind = $mainMod, 7, workspace, 7
|
|
||||||
bind = $mainMod, 8, workspace, 8
|
|
||||||
bind = $mainMod, 9, workspace, 9
|
|
||||||
bind = $mainMod, 0, workspace, 10
|
|
||||||
|
|
||||||
# Move active window to a workspace with mainMod + SHIFT + [0-9]
|
|
||||||
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
|
||||||
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
|
||||||
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
|
||||||
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
|
||||||
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
|
||||||
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
|
||||||
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
|
||||||
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
|
||||||
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
|
||||||
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
|
||||||
|
|
||||||
# Scroll through existing workspaces with mainMod + scroll
|
|
||||||
bind = $mainMod, mouse_down, workspace, e+1
|
|
||||||
bind = $mainMod, mouse_up, workspace, e-1
|
|
||||||
|
|
||||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
||||||
bindm = $mainMod, mouse:272, movewindow
|
|
||||||
bindm = $mainMod, mouse:273, resizewindow
|
|
||||||
|
|
||||||
# Media / brightness
|
|
||||||
bind=,XF86MonBrightnessUp,exec,brightnessctl set +5%
|
|
||||||
bind=,XF86MonBrightnessDown,exec,brightnessctl set 5%-
|
|
||||||
bind=,XF86AudioRaiseVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ +5%
|
|
||||||
bind=,XF86AudioLowerVolume,exec,pactl set-sink-volume @DEFAULT_SINK@ -5%
|
|
||||||
bind=,XF86AudioMute,exec,pactl set-sink-mute @DEFAULT_SINK@ toggle
|
|
||||||
|
|
||||||
# Screenshot
|
|
||||||
bind=,Print,exec,grim -o "eDP-1" && notify-send "screenshot taken"
|
|
||||||
bind=CTRL,Print,exec,grim -g "$(slurp)" - | wl-copy && notify-send "screenshot taken and sent to clipboard"
|
|
||||||
|
|
||||||
# lock computer
|
|
||||||
bind = $mainMod, l, exec,swaylock
|
|
||||||
bind = ,switch:Lid Switch,exec,systemctl suspend
|
|
||||||
|
|
||||||
# emoji picker
|
|
||||||
bind = $mainMod, period, exec, $HOME/.scripts/wemoji.sh
|
|
||||||
|
|
||||||
# hyprland related
|
|
||||||
exec-once=sh ~/.scripts/start-waybar.sh
|
|
||||||
exec-once=/usr/lib/polkit-kde-authentication-agent-1
|
|
||||||
exec-once=dunst
|
|
||||||
exec-once= ~/.scripts/hyprpaper-generate-config.sh && hyprpaper
|
|
||||||
|
|
||||||
# window rules
|
|
||||||
windowrule=workspace 1 silent,kitty
|
|
||||||
windowrule=workspace 2 silent,firefox
|
|
||||||
windowrule=workspace 3 silent,Emacs
|
|
||||||
windowrule=workspace 4 silent,Spotify
|
|
||||||
windowrulev2 = workspace 5, title:^(.*(Disc|WebC)ord.*)$
|
|
||||||
windowrule=float,^(.*)(KeePassXC)$
|
|
||||||
windowrulev2 = idleinhibit always,title:^(.*YouTube.*)$
|
|
||||||
# personal apps
|
|
||||||
exec-once=discord
|
|
||||||
exec-once=spotify-launcher
|
|
||||||
exec-once=swayidle -w timeout 180 'swaylock' timeout 600 '[[ $(cat /sys/class/power_supply/AC/online) -eq 0 ]] && systemctl suspend-then-hibernate' before-sleep 'swaylock'
|
|
||||||
env=MOZ_ENABLE_WAYLAND
|
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
$rosewaterAlpha = fff5e0dc
|
|
||||||
$flamingoAlpha = fff2cdcd
|
|
||||||
$pinkAlpha = fff5c2e7
|
|
||||||
$mauveAlpha = ffcba6f7
|
|
||||||
$redAlpha = fff38ba8
|
|
||||||
$maroonAlpha = ffeba0ac
|
|
||||||
$peachAlpha = fffab387
|
|
||||||
$yellowAlpha = fff9e2af
|
|
||||||
$greenAlpha = ffa6e3a1
|
|
||||||
$tealAlpha = ff94e2d5
|
|
||||||
$skyAlpha = ff89dceb
|
|
||||||
$sapphireAlpha = ff74c7ec
|
|
||||||
$blueAlpha = ff89b4fa
|
|
||||||
$lavenderAlpha = ffb4befe
|
|
||||||
|
|
||||||
$textAlpha = ffcdd6f4
|
|
||||||
$subtext1Alpha = ffbac2de
|
|
||||||
$subtext0Alpha = ffa6adc8
|
|
||||||
|
|
||||||
$overlay2Alpha = ff9399b2
|
|
||||||
$overlay1Alpha = ff7f849c
|
|
||||||
$overlay0Alpha = ff6c7086
|
|
||||||
|
|
||||||
$surface2Alpha = ff585b70
|
|
||||||
$surface1Alpha = ff45475a
|
|
||||||
$surface0Alpha = ff313244
|
|
||||||
|
|
||||||
$baseAlpha = ff1e1e2e
|
|
||||||
$mantleAlpha = ff181825
|
|
||||||
$crustAlpha = ff11111b
|
|
||||||
|
|
||||||
$rosewater = 0xfff5e0dc
|
|
||||||
$flamingo = 0xfff2cdcd
|
|
||||||
$pink = 0xfff5c2e7
|
|
||||||
$mauve = 0xffcba6f7
|
|
||||||
$red = 0xfff38ba8
|
|
||||||
$maroon = 0xffeba0ac
|
|
||||||
$peach = 0xfffab387
|
|
||||||
$yellow = 0xfff9e2af
|
|
||||||
$green = 0xffa6e3a1
|
|
||||||
$teal = 0xff94e2d5
|
|
||||||
$sky = 0xff89dceb
|
|
||||||
$sapphire = 0xff74c7ec
|
|
||||||
$blue = 0xff89b4fa
|
|
||||||
$lavender = 0xffb4befe
|
|
||||||
|
|
||||||
$text = 0xffcdd6f4
|
|
||||||
$subtext1 = 0xffbac2de
|
|
||||||
$subtext0 = 0xffa6adc8
|
|
||||||
|
|
||||||
$overlay2 = 0xff9399b2
|
|
||||||
$overlay1 = 0xff7f849c
|
|
||||||
$overlay0 = 0xff6c7086
|
|
||||||
|
|
||||||
$surface2 = 0xff585b70
|
|
||||||
$surface1 = 0xff45475a
|
|
||||||
$surface0 = 0xff313244
|
|
||||||
|
|
||||||
$base = 0xff1e1e2e
|
|
||||||
$mantle = 0xff181825
|
|
||||||
$crust = 0xff11111b
|
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
# vim:ft=kitty
|
|
||||||
|
|
||||||
## name: Catppuccin-Frappe
|
|
||||||
## author: Pocco81 (https://github.com/Pocco81)
|
|
||||||
## license: MIT
|
|
||||||
## upstream: https://github.com/catppuccin/kitty/blob/main/frappe.conf
|
|
||||||
## blurb: Soothing pastel theme for the high-spirited!
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# The basic colors
|
|
||||||
foreground #C6D0F5
|
|
||||||
background #303446
|
|
||||||
selection_foreground #303446
|
|
||||||
selection_background #F2D5CF
|
|
||||||
|
|
||||||
# Cursor colors
|
|
||||||
cursor #F2D5CF
|
|
||||||
cursor_text_color #303446
|
|
||||||
|
|
||||||
# URL underline color when hovering with mouse
|
|
||||||
url_color #F2D5CF
|
|
||||||
|
|
||||||
# Kitty window border colors
|
|
||||||
active_border_color #BABBF1
|
|
||||||
inactive_border_color #737994
|
|
||||||
bell_border_color #E5C890
|
|
||||||
|
|
||||||
# OS Window titlebar colors
|
|
||||||
wayland_titlebar_color system
|
|
||||||
macos_titlebar_color system
|
|
||||||
|
|
||||||
# Tab bar colors
|
|
||||||
active_tab_foreground #232634
|
|
||||||
active_tab_background #CA9EE6
|
|
||||||
inactive_tab_foreground #C6D0F5
|
|
||||||
inactive_tab_background #292C3C
|
|
||||||
tab_bar_background #232634
|
|
||||||
|
|
||||||
# Colors for marks (marked text in the terminal)
|
|
||||||
mark1_foreground #303446
|
|
||||||
mark1_background #BABBF1
|
|
||||||
mark2_foreground #303446
|
|
||||||
mark2_background #CA9EE6
|
|
||||||
mark3_foreground #303446
|
|
||||||
mark3_background #85C1DC
|
|
||||||
|
|
||||||
# The 16 terminal colors
|
|
||||||
|
|
||||||
# black
|
|
||||||
color0 #51576D
|
|
||||||
color8 #626880
|
|
||||||
|
|
||||||
# red
|
|
||||||
color1 #E78284
|
|
||||||
color9 #E78284
|
|
||||||
|
|
||||||
# green
|
|
||||||
color2 #A6D189
|
|
||||||
color10 #A6D189
|
|
||||||
|
|
||||||
# yellow
|
|
||||||
color3 #E5C890
|
|
||||||
color11 #E5C890
|
|
||||||
|
|
||||||
# blue
|
|
||||||
color4 #8CAAEE
|
|
||||||
color12 #8CAAEE
|
|
||||||
|
|
||||||
# magenta
|
|
||||||
color5 #F4B8E4
|
|
||||||
color13 #F4B8E4
|
|
||||||
|
|
||||||
# cyan
|
|
||||||
color6 #81C8BE
|
|
||||||
color14 #81C8BE
|
|
||||||
|
|
||||||
# white
|
|
||||||
color7 #B5BFE2
|
|
||||||
color15 #A5ADCE
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,3 +0,0 @@
|
||||||
[Default Applications]
|
|
||||||
application/x-directory=emacs-dired.desktop
|
|
||||||
inode/directory=emacs-dired.desktop
|
|
|
@ -1,7 +0,0 @@
|
||||||
require("core.autocmds")
|
|
||||||
require("core.options")
|
|
||||||
require("config.lazy")
|
|
||||||
|
|
||||||
if vim.g.neovide then
|
|
||||||
require("core.neovide")
|
|
||||||
end
|
|
|
@ -1,31 +0,0 @@
|
||||||
{
|
|
||||||
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
|
||||||
"LuaSnip": { "branch": "master", "commit": "b84eeb3641b08324287587b426ec974b888390d9" },
|
|
||||||
"alpha-nvim": { "branch": "main", "commit": "355fbb81a59637a8963cf5847074f8c44dbef11f" },
|
|
||||||
"catppuccin": { "branch": "main", "commit": "18bab5ec4c782cdf7d7525dbe89c60bfa02fc195" },
|
|
||||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
|
||||||
"cmp-cmdline": { "branch": "main", "commit": "d250c63aa13ead745e3a40f61fdd3470efde3923" },
|
|
||||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
|
||||||
"cmp-nvim-lsp-signature-help": { "branch": "main", "commit": "031e6ba70b0ad5eee49fd2120ff7a2e325b17fa7" },
|
|
||||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
|
||||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
|
||||||
"indent-blankline.nvim": { "branch": "master", "commit": "dddb5d21811c319eb6e51a993d8fb44b193aae3f" },
|
|
||||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
|
||||||
"lualine.nvim": { "branch": "master", "commit": "b431d228b7bbcdaea818bdc3e25b8cdbe861f056" },
|
|
||||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "1c55991321d1a861537e32446affc5de5d9a6eaf" },
|
|
||||||
"mason.nvim": { "branch": "main", "commit": "e2f7f9044ec30067bc11800a9e266664b88cda22" },
|
|
||||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "29f7c215332ba95e470811c380ddbce2cebe2af4" },
|
|
||||||
"nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" },
|
|
||||||
"nvim-autopairs": { "branch": "master", "commit": "48ca9aaee733911424646cb1605f27bc01dedbe3" },
|
|
||||||
"nvim-cmp": { "branch": "main", "commit": "ae644feb7b67bf1ce4260c231d1d4300b19c6f30" },
|
|
||||||
"nvim-lspconfig": { "branch": "master", "commit": "a89de2e049b5f89a0ee55029d5a31213bd4de6f8" },
|
|
||||||
"nvim-treesitter": { "branch": "master", "commit": "59cc5f35656f97bc964229e3ec5066a7b5a8ee5b" },
|
|
||||||
"nvim-web-devicons": { "branch": "master", "commit": "3722e3d1fb5fe1896a104eb489e8f8651260b520" },
|
|
||||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
|
||||||
"project.nvim": { "branch": "main", "commit": "8c6bad7d22eef1b71144b401c9f74ed01526a4fb" },
|
|
||||||
"telescope-project.nvim": { "branch": "master", "commit": "1aaf16580a614601a7f7077d9639aeb457dc5559" },
|
|
||||||
"telescope.nvim": { "branch": "master", "commit": "54930e1abfc94409e1bb9266e752ef8379008592" },
|
|
||||||
"vim-snippets": { "branch": "master", "commit": "f0a3184d9f90b96b044d5914625a25c554d7f301" },
|
|
||||||
"vim-tmux-navigator": { "branch": "master", "commit": "5b3c701686fb4e6629c100ed32e827edf8dad01e" },
|
|
||||||
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" }
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
-- Bootstrap lazy.nvim
|
|
||||||
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)
|
|
||||||
|
|
||||||
-- Make sure to setup `mapleader` and `maplocalleader` before
|
|
||||||
-- loading lazy.nvim so that mappings are correct.
|
|
||||||
-- This is also a good place to setup other settings (vim.opt)
|
|
||||||
vim.g.mapleader = " "
|
|
||||||
vim.g.maplocalleader = "\\"
|
|
||||||
|
|
||||||
-- Setup lazy.nvim
|
|
||||||
require("lazy").setup({
|
|
||||||
spec = {
|
|
||||||
-- import your plugins
|
|
||||||
{ import = "plugins" },
|
|
||||||
},
|
|
||||||
-- Configure any other settings here. See the documentation for more details.
|
|
||||||
-- colorscheme that will be used when installing plugins.
|
|
||||||
install = { colorscheme = { "habamax" } },
|
|
||||||
-- automatically check for plugin updates
|
|
||||||
checker = { enabled = true },
|
|
||||||
})
|
|
|
@ -1,8 +0,0 @@
|
||||||
local autocmd = vim.api.nvim_create_autocmd -- Create autocommand
|
|
||||||
|
|
||||||
autocmd("BufWritePre", {
|
|
||||||
buffer = buffer,
|
|
||||||
callback = function()
|
|
||||||
vim.lsp.buf.format { async = false }
|
|
||||||
end
|
|
||||||
})
|
|
|
@ -1 +0,0 @@
|
||||||
vim.o.guifont = "monospace:h14" -- text below applies for VimScript
|
|
|
@ -1,4 +0,0 @@
|
||||||
vim.g.mapleader = " "
|
|
||||||
vim.wo.relativenumber = true
|
|
||||||
vim.opt.foldmethod = "indent"
|
|
||||||
vim.opt.foldlevel = 99
|
|
|
@ -1,41 +0,0 @@
|
||||||
return {
|
|
||||||
'goolord/alpha-nvim',
|
|
||||||
dependencies = {
|
|
||||||
"nvim-telescope/telescope.nvim",
|
|
||||||
},
|
|
||||||
config = function()
|
|
||||||
local alpha = require 'alpha'
|
|
||||||
local dashboard = require 'alpha.themes.dashboard'
|
|
||||||
|
|
||||||
local frappe = require("catppuccin.palettes").get_palette "frappe"
|
|
||||||
|
|
||||||
vim.api.nvim_set_hl(0, 'DashboardHeader', { fg = frappe.lavender })
|
|
||||||
|
|
||||||
dashboard.section.header.val = {
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⡀⠒⠒⠦⣄⡀⠀⠀⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⢀⣤⣶⡾⠿⠿⠿⠿⣿⣿⣶⣦⣄⠙⠷⣤⡀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⣠⡾⠛⠉⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⣿⣷⣄⠘⢿⡄⠀⠀⠀",
|
|
||||||
"⠀⢀⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠐⠂⠠⢄⡀⠈⢿⣿⣧⠈⢿⡄⠀⠀",
|
|
||||||
"⢀⠏⠀⠀⠀⢀⠄⣀⣴⣾⠿⠛⠛⠛⠷⣦⡙⢦⠀⢻⣿⡆⠘⡇⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⡐⢁⣴⡿⠋⢀⠠⣠⠤⠒⠲⡜⣧⢸⠄⢸⣿⡇⠀⡇⠀⠀",
|
|
||||||
"⠀⠀⠀⡼⠀⣾⡿⠁⣠⢃⡞⢁⢔⣆⠔⣰⠏⡼⠀⣸⣿⠃⢸⠃⠀⠀",
|
|
||||||
"⠀⠀⢰⡇⢸⣿⡇⠀⡇⢸⡇⣇⣀⣠⠔⠫⠊⠀⣰⣿⠏⡠⠃⠀⠀⢀",
|
|
||||||
"⠀⠀⢸⡇⠸⣿⣷⠀⢳⡈⢿⣦⣀⣀⣀⣠⣴⣾⠟⠁⠀⠀⠀⠀⢀⡎",
|
|
||||||
"⠀⠀⠘⣷⠀⢻⣿⣧⠀⠙⠢⠌⢉⣛⠛⠛⠉⠀⠀⠀⠀⠀⠀⣠⠎⠀",
|
|
||||||
"⠀⠀⠀⠹⣧⡀⠻⣿⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡾⠃⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠈⠻⣤⡈⠻⢿⣿⣷⣦⣤⣤⣤⣤⣤⣴⡾⠛⠉⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠈⠙⠶⢤⣈⣉⠛⠛⠛⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀",
|
|
||||||
"⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀"
|
|
||||||
}
|
|
||||||
|
|
||||||
dashboard.section.header.opts.hl = 'DashboardHeader'
|
|
||||||
|
|
||||||
|
|
||||||
dashboard.section.buttons.val = {
|
|
||||||
dashboard.button("e", " New file", ":ene <BAR> startinsert <CR>"),
|
|
||||||
dashboard.button("f", " Find file", ":Telescope find_files <CR>"),
|
|
||||||
dashboard.button("p", " Open project", ":Telescope projects<CR>"),
|
|
||||||
}
|
|
||||||
alpha.setup(dashboard.opts)
|
|
||||||
end
|
|
||||||
};
|
|
|
@ -1,7 +0,0 @@
|
||||||
return {
|
|
||||||
'windwp/nvim-autopairs',
|
|
||||||
event = "InsertEnter",
|
|
||||||
config = true
|
|
||||||
-- use opts = {} for passing setup options
|
|
||||||
-- this is equalent to setup({}) function
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
return {
|
|
||||||
"catppuccin/nvim",
|
|
||||||
name = "catppuccin",
|
|
||||||
priority = 1000,
|
|
||||||
config = function()
|
|
||||||
vim.cmd.colorscheme "catppuccin-frappe"
|
|
||||||
end,
|
|
||||||
}
|
|
|
@ -1,101 +0,0 @@
|
||||||
return {
|
|
||||||
{ "williamboman/mason.nvim", opts = {} },
|
|
||||||
{
|
|
||||||
"williamboman/mason-lspconfig.nvim",
|
|
||||||
opts = {
|
|
||||||
ensure_installed = { "gopls", "lua_ls" },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"neovim/nvim-lspconfig",
|
|
||||||
config = function()
|
|
||||||
require("lspconfig").gopls.setup {}
|
|
||||||
require("lspconfig").lua_ls.setup {}
|
|
||||||
end,
|
|
||||||
keys = {
|
|
||||||
-- Keymap for LSP actions
|
|
||||||
{ "gd", vim.lsp.buf.definition, desc = "Go to Definition" },
|
|
||||||
{ "gr", vim.lsp.buf.references, desc = "Go to References" },
|
|
||||||
{ "gi", vim.lsp.buf.implementation, desc = "Go to Implementation" },
|
|
||||||
{ "K", vim.lsp.buf.hover, desc = "Hover Documentation" },
|
|
||||||
{ "<leader>r", vim.lsp.buf.rename, desc = "Rename Symbol" }
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"hrsh7th/nvim-cmp",
|
|
||||||
event = "InsertEnter",
|
|
||||||
dependencies = {
|
|
||||||
"hrsh7th/cmp-nvim-lsp",
|
|
||||||
"hrsh7th/cmp-buffer",
|
|
||||||
"hrsh7th/cmp-path",
|
|
||||||
"hrsh7th/cmp-cmdline",
|
|
||||||
"L3MON4D3/LuaSnip",
|
|
||||||
"saadparwaiz1/cmp_luasnip",
|
|
||||||
"honza/vim-snippets",
|
|
||||||
"hrsh7th/cmp-nvim-lsp-signature-help",
|
|
||||||
},
|
|
||||||
opts = function(_, opts)
|
|
||||||
local cmp = require "cmp"
|
|
||||||
local has_words_before = function()
|
|
||||||
local line, col = unpack(vim.api.nvim_win_get_cursor(0))
|
|
||||||
return col ~= 0 and
|
|
||||||
vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") ==
|
|
||||||
nil
|
|
||||||
end
|
|
||||||
|
|
||||||
require("luasnip.loaders.from_snipmate").lazy_load()
|
|
||||||
|
|
||||||
-- Setup cmp with options
|
|
||||||
opts.snippet = {
|
|
||||||
expand = function(args)
|
|
||||||
require('luasnip').lsp_expand(args.body) -- For `luasnip` users.
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
local luasnip = require('luasnip')
|
|
||||||
|
|
||||||
opts.mapping = cmp.mapping.preset.insert({
|
|
||||||
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
|
||||||
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
|
||||||
['<C-Space>'] = cmp.mapping.complete(),
|
|
||||||
['<C-e>'] = cmp.mapping.abort(),
|
|
||||||
['<CR>'] = cmp.mapping.confirm({ select = true }), -- Enter key to confirm completion
|
|
||||||
['<Tab>'] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_next_item() -- Navigate to the next item in the list
|
|
||||||
elseif luasnip.expand_or_jumpable() then
|
|
||||||
luasnip.expand_or_jump() -- Expand or jump to the next snippet placeholder
|
|
||||||
elseif has_words_before() then
|
|
||||||
cmp.complete() -- Trigger completion if a word is before the cursor
|
|
||||||
else
|
|
||||||
fallback() -- Insert a tab character if nothing else applies
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
['<S-Tab>'] = cmp.mapping(function(fallback)
|
|
||||||
if cmp.visible() then
|
|
||||||
cmp.select_prev_item() -- Navigate to the previous item in the list
|
|
||||||
elseif luasnip.jumpable(-1) then
|
|
||||||
luasnip.jump(-1) -- Jump to the previous snippet placeholder
|
|
||||||
else
|
|
||||||
fallback() -- Insert a tab character if nothing else applies
|
|
||||||
end
|
|
||||||
end, { "i", "s" }),
|
|
||||||
})
|
|
||||||
|
|
||||||
opts.sources = cmp.config.sources({
|
|
||||||
{ name = 'nvim_lsp' },
|
|
||||||
{ name = 'luasnip' }, -- For luasnip users.
|
|
||||||
}, {
|
|
||||||
{ name = 'buffer' },
|
|
||||||
{ name = 'nvim_lsp_signature_help' },
|
|
||||||
})
|
|
||||||
|
|
||||||
return opts
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
'numToStr/Comment.nvim',
|
|
||||||
opts = {
|
|
||||||
-- add any options here
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
return {
|
|
||||||
"nvim-neo-tree/neo-tree.nvim",
|
|
||||||
branch = "v3.x",
|
|
||||||
dependencies = {
|
|
||||||
"nvim-lua/plenary.nvim",
|
|
||||||
"nvim-tree/nvim-web-devicons", -- not strictly required, but recommended
|
|
||||||
"MunifTanjim/nui.nvim",
|
|
||||||
-- "3rd/image.nvim", -- Optional image support in preview window: See `# Preview Mode` for more information
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{ "<leader>ft", "<cmd>Neotree toggle<cr>", desc = "NeoTree" },
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,45 +0,0 @@
|
||||||
return {
|
|
||||||
"ahmedkhalf/project.nvim",
|
|
||||||
config = function()
|
|
||||||
require 'project_nvim'.setup {
|
|
||||||
-- Manual mode doesn't automatically change your root directory, so you have
|
|
||||||
-- the option to manually do so using `:ProjectRoot` command.
|
|
||||||
manual_mode = false,
|
|
||||||
|
|
||||||
-- Methods of detecting the root directory. **"lsp"** uses the native neovim
|
|
||||||
-- lsp, while **"pattern"** uses vim-rooter like glob pattern matching. Here
|
|
||||||
-- order matters: if one is not detected, the other is used as fallback. You
|
|
||||||
-- can also delete or rearangne the detection methods.
|
|
||||||
detection_methods = { "lsp", "pattern" },
|
|
||||||
|
|
||||||
-- All the patterns used to detect root dir, when **"pattern"** is in
|
|
||||||
-- detection_methods
|
|
||||||
patterns = { ".git", "_darcs", ".hg", ".bzr", ".svn", "Makefile", "package.json" },
|
|
||||||
|
|
||||||
-- Table of lsp clients to ignore by name
|
|
||||||
-- eg: { "efm", ... }
|
|
||||||
ignore_lsp = {},
|
|
||||||
|
|
||||||
-- Don't calculate root dir on specific directories
|
|
||||||
-- Ex: { "~/.cargo/*", ... }
|
|
||||||
exclude_dirs = {},
|
|
||||||
|
|
||||||
-- Show hidden files in telescope
|
|
||||||
show_hidden = false,
|
|
||||||
|
|
||||||
-- When set to false, you will get a message when project.nvim changes your
|
|
||||||
-- directory.
|
|
||||||
silent_chdir = true,
|
|
||||||
|
|
||||||
-- What scope to change the directory, valid options are
|
|
||||||
-- * global (default)
|
|
||||||
-- * tab
|
|
||||||
-- * win
|
|
||||||
scope_chdir = 'global',
|
|
||||||
|
|
||||||
-- Path where project.nvim will store the project history for use in
|
|
||||||
-- telescope
|
|
||||||
datapath = vim.fn.stdpath("data"),
|
|
||||||
}
|
|
||||||
end
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
return {
|
|
||||||
'nvim-lualine/lualine.nvim',
|
|
||||||
dependencies = { 'nvim-tree/nvim-web-devicons' },
|
|
||||||
opts = {
|
|
||||||
extensions = { "mason", "neo-tree" }
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
return {
|
|
||||||
{
|
|
||||||
|
|
||||||
"nvim-treesitter/nvim-treesitter",
|
|
||||||
build = ":TSUpdate",
|
|
||||||
config = function()
|
|
||||||
local configs = require("nvim-treesitter.configs")
|
|
||||||
|
|
||||||
configs.setup({
|
|
||||||
ensure_installed = { "c", "lua", "vim", "vimdoc", "query", "elixir", "heex", "javascript", "html", "go" },
|
|
||||||
sync_install = false,
|
|
||||||
highlight = { enable = true },
|
|
||||||
indent = { enable = true },
|
|
||||||
})
|
|
||||||
end
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"lukas-reineke/indent-blankline.nvim",
|
|
||||||
main = "ibl",
|
|
||||||
---@module "ibl"
|
|
||||||
---@type ibl.config
|
|
||||||
opts = {},
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
return {
|
|
||||||
'nvim-telescope/telescope.nvim',
|
|
||||||
tag = "0.1.3",
|
|
||||||
lazy = true,
|
|
||||||
dependencies = {
|
|
||||||
'nvim-lua/plenary.nvim',
|
|
||||||
'ahmedkhalf/project.nvim'
|
|
||||||
},
|
|
||||||
opts = {}, -- define config options here, or use a config() function
|
|
||||||
config = function()
|
|
||||||
require('telescope').load_extension('projects')
|
|
||||||
end,
|
|
||||||
keys = {
|
|
||||||
{ '<leader>ff', function() require 'telescope.builtin'.find_files() end, desc = 'Find files', mode = 'n' },
|
|
||||||
{ '<leader>fg', function() require('telescope.builtin').live_grep() end, desc = 'Live grep', mode = 'n' },
|
|
||||||
{ '<leader>fb', function() require('telescope.builtin').buffers() end, desc = 'Buffers', mode = 'n' },
|
|
||||||
{ '<leader>fh', function() require('telescope.builtin').help_tags() end, desc = 'Help tags', mode = 'n' },
|
|
||||||
{ '<leader>fp', function() require('telescope').extensions.projects.projects {} end, desc = 'Projects', mode = 'n' },
|
|
||||||
{ '<leader>fd', "<cmd>Telescope diagnostics<CR>", desc = 'Diagnostics', mode = 'n' }
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
return {
|
|
||||||
"christoomey/vim-tmux-navigator",
|
|
||||||
cmd = {
|
|
||||||
"TmuxNavigateLeft",
|
|
||||||
"TmuxNavigateDown",
|
|
||||||
"TmuxNavigateUp",
|
|
||||||
"TmuxNavigateRight",
|
|
||||||
"TmuxNavigatePrevious",
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{ "<c-h>", "<cmd><C-U>TmuxNavigateLeft<cr>" },
|
|
||||||
{ "<c-j>", "<cmd><C-U>TmuxNavigateDown<cr>" },
|
|
||||||
{ "<c-k>", "<cmd><C-U>TmuxNavigateUp<cr>" },
|
|
||||||
{ "<c-l>", "<cmd><C-U>TmuxNavigateRight<cr>" },
|
|
||||||
{ "<c-\\>", "<cmd><C-U>TmuxNavigatePrevious<cr>" },
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
return {
|
|
||||||
"folke/which-key.nvim",
|
|
||||||
event = "VeryLazy",
|
|
||||||
opts = {
|
|
||||||
-- your configuration comes here
|
|
||||||
-- or leave it empty to use the default settings
|
|
||||||
-- refer to the configuration section below
|
|
||||||
},
|
|
||||||
keys = {
|
|
||||||
{
|
|
||||||
"<leader>?",
|
|
||||||
function()
|
|
||||||
require("which-key").show({ global = false })
|
|
||||||
end,
|
|
||||||
desc = "Buffer Local Keymaps (which-key)",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
"float": [
|
|
||||||
{
|
|
||||||
"class": "1Password",
|
|
||||||
"title": "Quick Access — 1Password"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"skiptaskbarhidden": [],
|
|
||||||
"log_on_focus": false
|
|
||||||
}
|
|
|
@ -1,4 +0,0 @@
|
||||||
[ColorScheme]
|
|
||||||
active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
|
||||||
disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
|
||||||
inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c
|
|
|
@ -1,35 +0,0 @@
|
||||||
[Appearance]
|
|
||||||
color_scheme_path=/home/nezia/.config/qt5ct/colors/Catppuccin-Mocha.conf
|
|
||||||
custom_palette=true
|
|
||||||
icon_theme=Papirus-Dark
|
|
||||||
standard_dialogs=default
|
|
||||||
style=Lightly
|
|
||||||
|
|
||||||
[Fonts]
|
|
||||||
fixed="Monospace,12,-1,5,50,0,0,0,0,0"
|
|
||||||
general="Sans Serif,12,-1,5,50,0,0,0,0,0"
|
|
||||||
|
|
||||||
[Interface]
|
|
||||||
activate_item_on_single_click=1
|
|
||||||
buttonbox_layout=0
|
|
||||||
cursor_flash_time=1000
|
|
||||||
dialog_buttons_have_icons=1
|
|
||||||
double_click_interval=400
|
|
||||||
gui_effects=@Invalid()
|
|
||||||
keyboard_scheme=2
|
|
||||||
menus_have_icons=true
|
|
||||||
show_shortcuts_in_context_menus=true
|
|
||||||
stylesheets=@Invalid()
|
|
||||||
toolbutton_style=4
|
|
||||||
underline_shortcut=1
|
|
||||||
wheel_scroll_lines=3
|
|
||||||
|
|
||||||
[PaletteEditor]
|
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0[\0\0\0\xc6\0\0\x2\xd1\0\0\x2\xd6\0\0\0[\0\0\0\xc6\0\0\x2\xd1\0\0\x2\xd6\0\0\0\0\x2\0\0\0\x6\xc0\0\0\0[\0\0\0\xc6\0\0\x2\xd1\0\0\x2\xd6)
|
|
||||||
|
|
||||||
[SettingsWindow]
|
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x3@\0\0\x3\xeb\0\0\0\0\0\0\0\0\0\0\x2\xde\0\0\x3Y\0\0\0\0\x2\0\0\0\x6\xc0\0\0\0\0\0\0\0\0\0\0\x3@\0\0\x3\xeb)
|
|
||||||
|
|
||||||
[Troubleshooting]
|
|
||||||
force_raster_widgets=1
|
|
||||||
ignored_applications=@Invalid()
|
|
|
@ -1,127 +0,0 @@
|
||||||
# Sets user-defined palette
|
|
||||||
palette = "catppuccin_frappe"
|
|
||||||
|
|
||||||
[character]
|
|
||||||
# Note the use of Catppuccin color 'maroon'
|
|
||||||
success_symbol = "[❯](green)"
|
|
||||||
error_symbol = "[❯](red)"
|
|
||||||
vimcmd_symbol = "[❮](green)"
|
|
||||||
|
|
||||||
[directory]
|
|
||||||
truncation_length = 4
|
|
||||||
# Catppuccin 'lavender'
|
|
||||||
style = "bold lavender"
|
|
||||||
|
|
||||||
# palette tables should be last in the config ⚓️
|
|
||||||
[palettes.catppuccin_macchiato]
|
|
||||||
rosewater = "#f4dbd6"
|
|
||||||
flamingo = "#f0c6c6"
|
|
||||||
pink = "#f5bde6"
|
|
||||||
mauve = "#c6a0f6"
|
|
||||||
red = "#ed8796"
|
|
||||||
maroon = "#ee99a0"
|
|
||||||
peach = "#f5a97f"
|
|
||||||
yellow = "#eed49f"
|
|
||||||
green = "#a6da95"
|
|
||||||
teal = "#8bd5ca"
|
|
||||||
sky = "#91d7e3"
|
|
||||||
sapphire = "#7dc4e4"
|
|
||||||
blue = "#8aadf4"
|
|
||||||
lavender = "#b7bdf8"
|
|
||||||
text = "#cad3f5"
|
|
||||||
subtext1 = "#b8c0e0"
|
|
||||||
subtext0 = "#a5adcb"
|
|
||||||
overlay2 = "#939ab7"
|
|
||||||
overlay1 = "#8087a2"
|
|
||||||
overlay0 = "#6e738d"
|
|
||||||
surface2 = "#5b6078"
|
|
||||||
surface1 = "#494d64"
|
|
||||||
surface0 = "#363a4f"
|
|
||||||
base = "#24273a"
|
|
||||||
mantle = "#1e2030"
|
|
||||||
crust = "#181926"
|
|
||||||
|
|
||||||
[palettes.catppuccin_frappe]
|
|
||||||
rosewater = "#f2d5cf"
|
|
||||||
flamingo = "#eebebe"
|
|
||||||
pink = "#f4b8e4"
|
|
||||||
mauve = "#ca9ee6"
|
|
||||||
red = "#e78284"
|
|
||||||
maroon = "#ea999c"
|
|
||||||
peach = "#ef9f76"
|
|
||||||
yellow = "#e5c890"
|
|
||||||
green = "#a6d189"
|
|
||||||
teal = "#81c8be"
|
|
||||||
sky = "#99d1db"
|
|
||||||
sapphire = "#85c1dc"
|
|
||||||
blue = "#8caaee"
|
|
||||||
lavender = "#babbf1"
|
|
||||||
text = "#c6d0f5"
|
|
||||||
subtext1 = "#b5bfe2"
|
|
||||||
subtext0 = "#a5adce"
|
|
||||||
overlay2 = "#949cbb"
|
|
||||||
overlay1 = "#838ba7"
|
|
||||||
overlay0 = "#737994"
|
|
||||||
surface2 = "#626880"
|
|
||||||
surface1 = "#51576d"
|
|
||||||
surface0 = "#414559"
|
|
||||||
base = "#303446"
|
|
||||||
mantle = "#292c3c"
|
|
||||||
crust = "#232634"
|
|
||||||
|
|
||||||
[palettes.catppuccin_latte]
|
|
||||||
rosewater = "#dc8a78"
|
|
||||||
flamingo = "#dd7878"
|
|
||||||
pink = "#ea76cb"
|
|
||||||
mauve = "#8839ef"
|
|
||||||
red = "#d20f39"
|
|
||||||
maroon = "#e64553"
|
|
||||||
peach = "#fe640b"
|
|
||||||
yellow = "#df8e1d"
|
|
||||||
green = "#40a02b"
|
|
||||||
teal = "#179299"
|
|
||||||
sky = "#04a5e5"
|
|
||||||
sapphire = "#209fb5"
|
|
||||||
blue = "#1e66f5"
|
|
||||||
lavender = "#7287fd"
|
|
||||||
text = "#4c4f69"
|
|
||||||
subtext1 = "#5c5f77"
|
|
||||||
subtext0 = "#6c6f85"
|
|
||||||
overlay2 = "#7c7f93"
|
|
||||||
overlay1 = "#8c8fa1"
|
|
||||||
overlay0 = "#9ca0b0"
|
|
||||||
surface2 = "#acb0be"
|
|
||||||
surface1 = "#bcc0cc"
|
|
||||||
surface0 = "#ccd0da"
|
|
||||||
base = "#eff1f5"
|
|
||||||
mantle = "#e6e9ef"
|
|
||||||
crust = "#dce0e8"
|
|
||||||
|
|
||||||
[palettes.catppuccin_mocha]
|
|
||||||
rosewater = "#f5e0dc"
|
|
||||||
flamingo = "#f2cdcd"
|
|
||||||
pink = "#f5c2e7"
|
|
||||||
mauve = "#cba6f7"
|
|
||||||
red = "#f38ba8"
|
|
||||||
maroon = "#eba0ac"
|
|
||||||
peach = "#fab387"
|
|
||||||
yellow = "#f9e2af"
|
|
||||||
green = "#a6e3a1"
|
|
||||||
teal = "#94e2d5"
|
|
||||||
sky = "#89dceb"
|
|
||||||
sapphire = "#74c7ec"
|
|
||||||
blue = "#89b4fa"
|
|
||||||
lavender = "#b4befe"
|
|
||||||
text = "#cdd6f4"
|
|
||||||
subtext1 = "#bac2de"
|
|
||||||
subtext0 = "#a6adc8"
|
|
||||||
overlay2 = "#9399b2"
|
|
||||||
overlay1 = "#7f849c"
|
|
||||||
overlay0 = "#6c7086"
|
|
||||||
surface2 = "#585b70"
|
|
||||||
surface1 = "#45475a"
|
|
||||||
surface0 = "#313244"
|
|
||||||
base = "#1e1e2e"
|
|
||||||
mantle = "#181825"
|
|
||||||
crust = "#11111b"
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
daemonize
|
|
||||||
show-failed-attempts
|
|
||||||
clock
|
|
||||||
screenshots
|
|
||||||
effect-blur=7x5
|
|
||||||
color=1f1d2e80
|
|
||||||
font="Fira Code Retina"
|
|
||||||
indicator
|
|
||||||
indicator-radius=200
|
|
||||||
indicator-thickness=20
|
|
||||||
line-color=1f1d2e
|
|
||||||
ring-color=191724
|
|
||||||
inside-color=1f1d2e
|
|
||||||
key-hl-color=eb6f92
|
|
||||||
separator-color=00000000
|
|
||||||
text-color=e0def4
|
|
||||||
text-caps-lock-color=""
|
|
||||||
line-ver-color=eb6f92
|
|
||||||
ring-ver-color=eb6f92
|
|
||||||
inside-ver-color=1f1d2e
|
|
||||||
text-ver-color=e0def4
|
|
||||||
ring-wrong-color=31748f
|
|
||||||
text-wrong-color=31748f
|
|
||||||
inside-wrong-color=1f1d2e
|
|
||||||
inside-clear-color=1f1d2e
|
|
||||||
text-clear-color=e0def4
|
|
||||||
ring-clear-color=9ccfd8
|
|
||||||
line-clear-color=1f1d2e
|
|
||||||
line-wrong-color=1f1d2e
|
|
||||||
bs-hl-color=31748f
|
|
||||||
grace=2
|
|
||||||
grace-no-mouse
|
|
||||||
grace-no-touch
|
|
||||||
datestr=%d.%m.%Y
|
|
||||||
timestr=%H:%M
|
|
||||||
fade-in="0.1"
|
|
|
@ -1,8 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Sync personal files with a remote called drive
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=%h/.scripts/sync.sh
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
|
@ -1,9 +0,0 @@
|
||||||
[Unit]
|
|
||||||
Description=Sync a remote called drive every 5 minutes using rclone
|
|
||||||
|
|
||||||
[Timer]
|
|
||||||
OnBootSec=5min
|
|
||||||
OnUnitActiveSec=5min
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=timers.target
|
|
|
@ -1,45 +0,0 @@
|
||||||
# List of plugins
|
|
||||||
set -g @plugin 'tmux-plugins/tpm'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-sensible'
|
|
||||||
set -g @plugin 'christoomey/vim-tmux-navigator'
|
|
||||||
set -g @plugin 'catppuccin/tmux#latest'
|
|
||||||
set -g @plugin 'tmux-plugins/tmux-yank'
|
|
||||||
|
|
||||||
|
|
||||||
# set the control character to Ctrl+Spacebar (instead of Ctrl+B)
|
|
||||||
set -g prefix C-space
|
|
||||||
unbind-key C-b
|
|
||||||
bind-key C-space send-prefix
|
|
||||||
|
|
||||||
# set new panes to open in current directory
|
|
||||||
bind c new-window -c "#{pane_current_path}"
|
|
||||||
bind '"' split-window -c "#{pane_current_path}"
|
|
||||||
bind % split-window -h -c "#{pane_current_path}"
|
|
||||||
|
|
||||||
# start windows and panes at 1 instead of 0
|
|
||||||
set -g base-index 1
|
|
||||||
set -g pane-base-index 1
|
|
||||||
set-window-option -g pane-base-index 1
|
|
||||||
set-option -g renumber-windows on
|
|
||||||
|
|
||||||
set -g @catppuccin_flavour 'frappe' # latte,frappe, macchiato or mocha
|
|
||||||
|
|
||||||
# neovim compatibility
|
|
||||||
set-option -sg escape-time 10
|
|
||||||
set-option -g focus-events on
|
|
||||||
set-option -a terminal-features 'xterm*:RGB'
|
|
||||||
|
|
||||||
# enable selecting panes with mouse
|
|
||||||
set -g mouse on
|
|
||||||
|
|
||||||
# enable vi keys in copy mode
|
|
||||||
setw -g mode-keys vi
|
|
||||||
|
|
||||||
# remove confirmation on killing panes and windows
|
|
||||||
bind-key & kill-window
|
|
||||||
bind-key x kill-pane
|
|
||||||
|
|
||||||
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf)
|
|
||||||
run '~/.tmux/plugins/tpm/tpm'
|
|
||||||
|
|
||||||
|
|
|
@ -1,158 +0,0 @@
|
||||||
{
|
|
||||||
"layer": "top", // Waybar at top layer
|
|
||||||
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
|
||||||
"height": 30, // Waybar height (to be removed for auto height)
|
|
||||||
// "width": 1280, // Waybar width
|
|
||||||
"spacing": 4, // Gaps between modules (4px)
|
|
||||||
// Choose the order of the modules
|
|
||||||
"modules-left": ["wlr/workspaces", "custom/media"],
|
|
||||||
"modules-center": ["clock"],
|
|
||||||
"modules-right": ["pulseaudio", "network", "cpu", "memory", "temperature", "backlight", "keyboard-state", "sway/language", "battery", "battery#bat2", "tray"],
|
|
||||||
// Modules configuration
|
|
||||||
"wlr/workspaces": {
|
|
||||||
"on-click": "activate",
|
|
||||||
"disable-scroll": true,
|
|
||||||
"all-outputs": true,
|
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"1": "",
|
|
||||||
"2": "",
|
|
||||||
"3": "",
|
|
||||||
"4": "",
|
|
||||||
"5": "",
|
|
||||||
"6": "",
|
|
||||||
"urgent": "",
|
|
||||||
"focused": "",
|
|
||||||
"default": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"keyboard-state": {
|
|
||||||
"numlock": true,
|
|
||||||
"capslock": true,
|
|
||||||
"format": "{name} {icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"locked": "",
|
|
||||||
"unlocked": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mpd": {
|
|
||||||
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
|
|
||||||
"format-disconnected": "Disconnected ",
|
|
||||||
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
|
|
||||||
"unknown-tag": "N/A",
|
|
||||||
"interval": 2,
|
|
||||||
"consume-icons": {
|
|
||||||
"on": " "
|
|
||||||
},
|
|
||||||
"random-icons": {
|
|
||||||
"off": "<span color=\"#f53c3c\"></span> ",
|
|
||||||
"on": " "
|
|
||||||
},
|
|
||||||
"repeat-icons": {
|
|
||||||
"on": " "
|
|
||||||
},
|
|
||||||
"single-icons": {
|
|
||||||
"on": "1 "
|
|
||||||
},
|
|
||||||
"state-icons": {
|
|
||||||
"paused": "",
|
|
||||||
"playing": ""
|
|
||||||
},
|
|
||||||
"tooltip-format": "MPD (connected)",
|
|
||||||
"tooltip-format-disconnected": "MPD (disconnected)"
|
|
||||||
},
|
|
||||||
"idle_inhibitor": {
|
|
||||||
"format": "{icon}",
|
|
||||||
"format-icons": {
|
|
||||||
"activated": "",
|
|
||||||
"deactivated": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tray": {
|
|
||||||
"icon-size": 21,
|
|
||||||
"spacing": 10
|
|
||||||
},
|
|
||||||
"clock": {
|
|
||||||
// "timezone": "America/New_York",
|
|
||||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
|
||||||
"format-alt": "{:%d-%m-%Y}"
|
|
||||||
},
|
|
||||||
"cpu": {
|
|
||||||
"format": " {usage}%",
|
|
||||||
"tooltip": false
|
|
||||||
},
|
|
||||||
"memory": {
|
|
||||||
"format": " {}%"
|
|
||||||
},
|
|
||||||
"temperature": {
|
|
||||||
// "thermal-zone": 2,
|
|
||||||
"hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
|
||||||
"critical-threshold": 80,
|
|
||||||
// "format-critical": "{temperatureC}°C {icon}",
|
|
||||||
"format": "{icon} {temperatureC}°C",
|
|
||||||
"format-icons": ["", "", ""]
|
|
||||||
},
|
|
||||||
"backlight": {
|
|
||||||
// "device": "acpi_video1",
|
|
||||||
"format": " {percent}%",
|
|
||||||
},
|
|
||||||
"battery": {
|
|
||||||
"states": {
|
|
||||||
"good": 95,
|
|
||||||
"warning": 30,
|
|
||||||
"critical": 15
|
|
||||||
},
|
|
||||||
"format": "{icon} {capacity}%",
|
|
||||||
"format-charging": " {capacity}%",
|
|
||||||
"format-plugged": " {capacity}%",
|
|
||||||
"format-alt": "{time} {icon}",
|
|
||||||
// "format-good": "", // An empty format will hide the module
|
|
||||||
// "format-full": "",
|
|
||||||
"format-icons": ["", "", "", "", ""]
|
|
||||||
},
|
|
||||||
"battery#bat2": {
|
|
||||||
"bat": "BAT2"
|
|
||||||
},
|
|
||||||
"network": {
|
|
||||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
|
||||||
"format-wifi": " {essid} ({signalStrength}%)",
|
|
||||||
"format-ethernet": " {ipaddr}/{cidr}",
|
|
||||||
"tooltip-format": " {ifname} via {gwaddr}",
|
|
||||||
"format-linked": " {ifname} (No IP) ",
|
|
||||||
"format-disconnected": "⚠ Disconnected",
|
|
||||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
|
||||||
},
|
|
||||||
"pulseaudio": {
|
|
||||||
// "scroll-step": 1, // %, can be a float
|
|
||||||
"format": "{icon} {volume}%",
|
|
||||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
|
||||||
"format-bluetooth-muted": " {icon} {format_source}",
|
|
||||||
"format-muted": " {volume}%",
|
|
||||||
"format-source": "{volume}%",
|
|
||||||
"format-source-muted": "",
|
|
||||||
"format-icons": {
|
|
||||||
"headphone": "",
|
|
||||||
"hands-free": "",
|
|
||||||
"headset": "",
|
|
||||||
"phone": "",
|
|
||||||
"portable": "",
|
|
||||||
"car": "",
|
|
||||||
"default": ["", "", ""]
|
|
||||||
},
|
|
||||||
"on-click": "pavucontrol"
|
|
||||||
},
|
|
||||||
"custom/media": {
|
|
||||||
"format": "{icon} {}",
|
|
||||||
"return-type": "json",
|
|
||||||
"max-length": 40,
|
|
||||||
"format-icons": {
|
|
||||||
"spotify": "",
|
|
||||||
"default": "🎜"
|
|
||||||
},
|
|
||||||
"escape": true,
|
|
||||||
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
|
|
||||||
// "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
/*
|
|
||||||
*
|
|
||||||
* Catppuccin Mocha palette
|
|
||||||
* Maintainer: rubyowo
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
@define-color base #1e1e2e;
|
|
||||||
@define-color mantle #181825;
|
|
||||||
@define-color crust #11111b;
|
|
||||||
|
|
||||||
@define-color text #cdd6f4;
|
|
||||||
@define-color subtext0 #a6adc8;
|
|
||||||
@define-color subtext1 #bac2de;
|
|
||||||
|
|
||||||
@define-color surface0 #313244;
|
|
||||||
@define-color surface1 #45475a;
|
|
||||||
@define-color surface2 #585b70;
|
|
||||||
|
|
||||||
@define-color overlay0 #6c7086;
|
|
||||||
@define-color overlay1 #7f849c;
|
|
||||||
@define-color overlay2 #9399b2;
|
|
||||||
|
|
||||||
@define-color blue #89b4fa;
|
|
||||||
@define-color lavender #b4befe;
|
|
||||||
@define-color sapphire #74c7ec;
|
|
||||||
@define-color sky #89dceb;
|
|
||||||
@define-color teal #94e2d5;
|
|
||||||
@define-color green #a6e3a1;
|
|
||||||
@define-color yellow #f9e2af;
|
|
||||||
@define-color peach #fab387;
|
|
||||||
@define-color maroon #eba0ac;
|
|
||||||
@define-color red #f38ba8;
|
|
||||||
@define-color mauve #cba6f7;
|
|
||||||
@define-color pink #f5c2e7;
|
|
||||||
@define-color flamingo #f2cdcd;
|
|
||||||
@define-color rosewater #f5e0dc;
|
|
|
@ -1,262 +0,0 @@
|
||||||
@import "mocha.css";
|
|
||||||
|
|
||||||
* {
|
|
||||||
/* `otf-font-awesome` is required to be installed for icons */
|
|
||||||
font-family: "Fira Code Retina", FontAwesome6FreeSolid, FontAwesome6Free;
|
|
||||||
font-size: 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background-color: @base;
|
|
||||||
color: @text;
|
|
||||||
transition-property: background-color;
|
|
||||||
transition-duration: .5s;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar.hidden {
|
|
||||||
opacity: 0.2;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
window#waybar.empty {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
window#waybar.solo {
|
|
||||||
background-color: #FFFFFF;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
window#waybar.termite {
|
|
||||||
background-color: #3F3F3F;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar.chromium {
|
|
||||||
background-color: #000000;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
/* Use box-shadow instead of border so the text isn't offset */
|
|
||||||
box-shadow: inset 0 -3px transparent;
|
|
||||||
/* Avoid rounded borders under each button name */
|
|
||||||
border: none;
|
|
||||||
border-radius: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
|
||||||
button:hover {
|
|
||||||
background: inherit;
|
|
||||||
box-shadow: inset 0 -3px #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
padding: 0 5px;
|
|
||||||
background-color: transparent;
|
|
||||||
color: @fg;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button:hover {
|
|
||||||
background: rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.focused {
|
|
||||||
background-color: #64727D;
|
|
||||||
box-shadow: inset 0 -3px #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
background-color: @lavender;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.urgent {
|
|
||||||
background-color: #eb4d4b;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mode {
|
|
||||||
background-color: #64727D;
|
|
||||||
border-bottom: 3px solid #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock,
|
|
||||||
#battery,
|
|
||||||
#cpu,
|
|
||||||
#memory,
|
|
||||||
#disk,
|
|
||||||
#temperature,
|
|
||||||
#backlight,
|
|
||||||
#network,
|
|
||||||
#pulseaudio,
|
|
||||||
#wireplumber,
|
|
||||||
#custom-media,
|
|
||||||
#tray,
|
|
||||||
#mode,
|
|
||||||
#idle_inhibitor,
|
|
||||||
#scratchpad,
|
|
||||||
#mpd {
|
|
||||||
padding: 0 10px;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window,
|
|
||||||
#workspaces {
|
|
||||||
margin: 0 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If workspaces is the leftmost module, omit left margin */
|
|
||||||
.modules-left > widget:first-child > #workspaces {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If workspaces is the rightmost module, omit right margin */
|
|
||||||
.modules-right > widget:last-child > #workspaces {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery {
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.charging, #battery.plugged {
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes blink {
|
|
||||||
to {
|
|
||||||
background-color: @base;
|
|
||||||
color: @text;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.critical:not(.charging) {
|
|
||||||
background-color: @red;
|
|
||||||
animation-name: blink;
|
|
||||||
animation-duration: 0.5s;
|
|
||||||
animation-timing-function: linear;
|
|
||||||
animation-iteration-count: infinite;
|
|
||||||
animation-direction: alternate;
|
|
||||||
}
|
|
||||||
|
|
||||||
label:focus {
|
|
||||||
background-color: #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#cpu {
|
|
||||||
}
|
|
||||||
|
|
||||||
#memory {
|
|
||||||
}
|
|
||||||
|
|
||||||
#disk {
|
|
||||||
}
|
|
||||||
|
|
||||||
#backlight {
|
|
||||||
}
|
|
||||||
|
|
||||||
#network {
|
|
||||||
}
|
|
||||||
|
|
||||||
#network.disconnected {
|
|
||||||
}
|
|
||||||
|
|
||||||
#pulseaudio {
|
|
||||||
}
|
|
||||||
|
|
||||||
#pulseaudio.muted {
|
|
||||||
}
|
|
||||||
|
|
||||||
#wireplumber {
|
|
||||||
}
|
|
||||||
|
|
||||||
#wireplumber.muted {
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-media {
|
|
||||||
background-color: #66cc99;
|
|
||||||
color: #2a5c45;
|
|
||||||
min-width: 100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-media.custom-spotify {
|
|
||||||
background-color: #66cc99;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-media.custom-vlc {
|
|
||||||
background-color: #ffa000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#temperature {
|
|
||||||
}
|
|
||||||
|
|
||||||
#temperature.critical {
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray {
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray > .passive {
|
|
||||||
-gtk-icon-effect: dim;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray > .needs-attention {
|
|
||||||
-gtk-icon-effect: highlight;
|
|
||||||
background-color: #eb4d4b;
|
|
||||||
}
|
|
||||||
|
|
||||||
#idle_inhibitor {
|
|
||||||
background-color: #2d3436;
|
|
||||||
}
|
|
||||||
|
|
||||||
#idle_inhibitor.activated {
|
|
||||||
background-color: #ecf0f1;
|
|
||||||
color: #2d3436;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mpd {
|
|
||||||
background-color: #66cc99;
|
|
||||||
color: #2a5c45;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mpd.disconnected {
|
|
||||||
background-color: #f53c3c;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mpd.stopped {
|
|
||||||
background-color: #90b1b1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#mpd.paused {
|
|
||||||
background-color: #51a37a;
|
|
||||||
}
|
|
||||||
|
|
||||||
#language {
|
|
||||||
background: #00b093;
|
|
||||||
color: #740864;
|
|
||||||
padding: 0 5px;
|
|
||||||
margin: 0 5px;
|
|
||||||
min-width: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#keyboard-state {
|
|
||||||
background: #97e1ad;
|
|
||||||
color: #000000;
|
|
||||||
padding: 0 0px;
|
|
||||||
margin: 0 5px;
|
|
||||||
min-width: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#keyboard-state > label {
|
|
||||||
padding: 0 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#keyboard-state > label.locked {
|
|
||||||
background: rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
#scratchpad {
|
|
||||||
background: rgba(0, 0, 0, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
#scratchpad.empty {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
|
@ -1,94 +0,0 @@
|
||||||
/* Mocha Lavender */
|
|
||||||
@define-color accent #babbf1;
|
|
||||||
@define-color txt #cad3f5;
|
|
||||||
@define-color bg #24273a;
|
|
||||||
@define-color bg2 #494d64;
|
|
||||||
|
|
||||||
* {
|
|
||||||
font-family: 'JetBrains Mono Nerd Font', monospace;
|
|
||||||
font-size: 14px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Window */
|
|
||||||
window {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 10px;
|
|
||||||
border: 3px solid @accent;
|
|
||||||
border-radius: 7px;
|
|
||||||
background-color: @bg;
|
|
||||||
animation: slideIn 0.5s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Slide In */
|
|
||||||
@keyframes slideIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Inner Box */
|
|
||||||
#inner-box {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @bg;
|
|
||||||
animation: fadeIn 0.5s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Fade In */
|
|
||||||
@keyframes fadeIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Outer Box */
|
|
||||||
#outer-box {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
background-color: @bg;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Scroll */
|
|
||||||
#scroll {
|
|
||||||
margin: 0px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Input */
|
|
||||||
#input {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
color: @accent;
|
|
||||||
background-color: @bg2;
|
|
||||||
animation: fadeIn 0.5s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Text */
|
|
||||||
#text {
|
|
||||||
margin: 5px;
|
|
||||||
padding: 10px;
|
|
||||||
border: none;
|
|
||||||
color: @txt;
|
|
||||||
animation: fadeIn 0.5s ease-in-out both;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Selected Entry */
|
|
||||||
#entry:selected {
|
|
||||||
background-color: @accent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#entry:selected #text {
|
|
||||||
color: @bg;
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
{{ .chezmoi.sourceDir }}/zed/settings.json
|
|
|
@ -1,432 +0,0 @@
|
||||||
#+TITLE: Emacs literate configuration
|
|
||||||
#+AUTHOR: Anthony Rodriguez
|
|
||||||
#+PROPERTY: header-args:emacs-lisp :tangle ~/.emacs.d/init.el
|
|
||||||
|
|
||||||
* Table of Contents :TOC:
|
|
||||||
- [[#packages-initialization][Packages initialization]]
|
|
||||||
- [[#vc-use-package][vc-use-package]]
|
|
||||||
- [[#general-config][General config]]
|
|
||||||
- [[#move-temporary-files-to-tmpusername][Move temporary files to /tmp/{username}]]
|
|
||||||
- [[#minimal-interface][Minimal interface]]
|
|
||||||
- [[#mode-line][Mode line]]
|
|
||||||
- [[#match-fish-shells-path][Match fish shell's path]]
|
|
||||||
- [[#bell][Bell]]
|
|
||||||
- [[#font][Font]]
|
|
||||||
- [[#visual-mode][Visual mode]]
|
|
||||||
- [[#theme][Theme]]
|
|
||||||
- [[#completion][Completion]]
|
|
||||||
- [[#which-key][which-key]]
|
|
||||||
- [[#org-mode][Org mode]]
|
|
||||||
- [[#pretty-bullets-and-headlines][Pretty bullets and headlines]]
|
|
||||||
- [[#toc-org][toc-org]]
|
|
||||||
- [[#programming][Programming]]
|
|
||||||
- [[#eglot][Eglot]]
|
|
||||||
- [[#autocompletion][Autocompletion]]
|
|
||||||
- [[#snippets][Snippets]]
|
|
||||||
- [[#magit][Magit]]
|
|
||||||
- [[#docker][Docker]]
|
|
||||||
- [[#popper][popper]]
|
|
||||||
- [[#languages][Languages]]
|
|
||||||
|
|
||||||
* Packages initialization
|
|
||||||
Here, we're initializing MELPA, as well as package.el and use-package.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(require 'package)
|
|
||||||
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
|
|
||||||
;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities`
|
|
||||||
;; and `package-pinned-packages`. Most users will not need or want to do this.
|
|
||||||
;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t)
|
|
||||||
|
|
||||||
;; Refresh package contents only if the archive contents are empty
|
|
||||||
(unless (and package-archive-contents (not (equal package-archive-contents '())))
|
|
||||||
(package-refresh-contents))
|
|
||||||
(require 'use-package)
|
|
||||||
(setq use-package-always-ensure t)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** vc-use-package
|
|
||||||
vc-use-package integrates package-vc-install, which allows installing packages from git repositories, into use-package. It won't be needed from Emacs 30, as it will integrate natively.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(if (< emacs-major-version 30)
|
|
||||||
(unless (package-installed-p 'vc-use-package)
|
|
||||||
(package-vc-install "https://github.com/slotThe/vc-use-package"))
|
|
||||||
(require 'vc-use-package))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* General config
|
|
||||||
** Move temporary files to /tmp/{username}
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(defvar user-temporary-file-directory
|
|
||||||
(concat temporary-file-directory user-login-name "/"))
|
|
||||||
(make-directory user-temporary-file-directory t)
|
|
||||||
(setq backup-by-copying t)
|
|
||||||
(setq backup-directory-alist
|
|
||||||
`(("." . ,user-temporary-file-directory)
|
|
||||||
(,tramp-file-name-regexp nil)))
|
|
||||||
(setq auto-save-list-file-prefix
|
|
||||||
(concat user-temporary-file-directory ".auto-saves-"))
|
|
||||||
(setq auto-save-file-name-transforms
|
|
||||||
`((".*" ,user-temporary-file-directory t)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Minimal interface
|
|
||||||
We disable a lot of interface elements, to make the editor more minimal looking.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(setq inhibit-startup-message t)
|
|
||||||
(scroll-bar-mode -1)
|
|
||||||
(tool-bar-mode -1)
|
|
||||||
(tooltip-mode -1)
|
|
||||||
(set-fringe-mode 10)
|
|
||||||
(menu-bar-mode -1)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Mode line
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package moody
|
|
||||||
:config
|
|
||||||
(moody-replace-mode-line-front-space)
|
|
||||||
(moody-replace-mode-line-buffer-identification))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Match fish shell's path
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(defun set-exec-path-from-shell-PATH ()
|
|
||||||
"Set up Emacs' `exec-path' and PATH environment variable to match
|
|
||||||
that used by the user's shell.
|
|
||||||
|
|
||||||
This is particularly useful under Mac OS X and macOS, where GUI
|
|
||||||
apps are not started from a shell."
|
|
||||||
(interactive)
|
|
||||||
(let ((path-from-shell (replace-regexp-in-string
|
|
||||||
"[ \t\n]*$" "" (shell-command-to-string
|
|
||||||
"/usr/bin/fish --login -c 'string join : $PATH'"
|
|
||||||
))))
|
|
||||||
(setenv "PATH" path-from-shell)
|
|
||||||
(setq exec-path (split-string path-from-shell path-separator))))
|
|
||||||
|
|
||||||
(set-exec-path-from-shell-PATH)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Bell
|
|
||||||
I don't like any visual or sound bell.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(setq ring-bell-function 'ignore)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Font
|
|
||||||
I use two different fonts in Emacs : my sans serif font for anything where variable fonts wouldn't matter, and monospace for fixed width text (such as code, org blocks and org tables). I like to use the generic sans-serif and monospace fonts, as it allows me to define them system-wide, which I highly prefer.
|
|
||||||
|
|
||||||
Besides the font settings, I use the package fixed-pitch, which sets up hooks automatically for all the modes that require fixed width fonts. This allows me to have my sans serif everywhere else.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(custom-theme-set-faces
|
|
||||||
'user
|
|
||||||
;; global faces
|
|
||||||
'(default ((t (:family "monospace" :height 125))))
|
|
||||||
'(variable-pitch ((t (:family "DejaVu Sans" :height 125))))
|
|
||||||
'(fixed-pitch ((t (:family "monospace" :height 125))))
|
|
||||||
;; org mode specific faces
|
|
||||||
'(org-block ((t (:inherit fixed-pitch))))
|
|
||||||
'(org-code ((t (:inherit (shadow fixed-pitch)))))
|
|
||||||
'(org-table ((t (:inherit fixed-pitch :foreground "#83a598")))))
|
|
||||||
|
|
||||||
|
|
||||||
(use-package fixed-pitch
|
|
||||||
:vc ( :fetcher github :repo cstby/fixed-pitch-mode))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** Ligatures
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package ligature
|
|
||||||
:config
|
|
||||||
(ligature-set-ligatures 't '("www"))
|
|
||||||
(ligature-set-ligatures '(prog-mode tsx-ts-mode) '("--" "---" "==" "===" "!=" "!==" "=!="
|
|
||||||
"=:=" "=/=" "<=" ">=" "&&" "&&&" "&=" "++" "+++" "***" ";;" "!!"
|
|
||||||
"??" "???" "?:" "?." "?=" "<:" ":<" ":>" ">:" "<:<" "<>" "<<<" ">>>"
|
|
||||||
"<<" ">>" "||" "-|" "_|_" "|-" "||-" "|=" "||=" "##" "###" "####"
|
|
||||||
"#{" "#[" "]#" "#(" "#?" "#_" "#_(" "#:" "#!" "#=" "^=" "<$>" "<$"
|
|
||||||
"$>" "<+>" "<+" "+>" "<*>" "<*" "*>" "</" "</>" "/>" "<!--" "<#--"
|
|
||||||
"-->" "->" "->>" "<<-" "<-" "<=<" "=<<" "<<=" "<==" "<=>" "<==>"
|
|
||||||
"==>" "=>" "=>>" ">=>" ">>=" ">>-" ">-" "-<" "-<<" ">->" "<-<" "<-|"
|
|
||||||
"<=|" "|=>" "|->" "<->" "<~~" "<~" "<~>" "~~" "~~>" "~>" "~-" "-~"
|
|
||||||
"~@" "[||]" "|]" "[|" "|}" "{|" "[<" ">]" "|>" "<|" "||>" "<||"
|
|
||||||
"|||>" "<|||" "<|>" "..." ".." ".=" "..<" ".?" "::" ":::" ":=" "::="
|
|
||||||
":?" ":?>" "//" "///" "/*" "*/" "/=" "//=" "/==" "@_" "__" "???"
|
|
||||||
"<:<" ";;;"))
|
|
||||||
(global-ligature-mode t))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Visual mode
|
|
||||||
We turn on visual mode, so that lines can wrap nicely and not go beyond my Emacs buffer size.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(global-visual-line-mode t)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Theme
|
|
||||||
I use catppuccin as my theme, as I find it comfortable to work with (the Frappe flavor).
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package catppuccin-theme
|
|
||||||
:init
|
|
||||||
(setq catppuccin-flavor 'frappe)
|
|
||||||
:config
|
|
||||||
(load-theme 'catppuccin :no-confirm))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Completion
|
|
||||||
I use vertico as my completion framework. It's minimal, fast and tells me all I need to know and even sorts by history.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package vertico
|
|
||||||
:init
|
|
||||||
(vertico-mode)
|
|
||||||
|
|
||||||
;; Different scroll margin
|
|
||||||
;; (setq vertico-scroll-margin 0)
|
|
||||||
|
|
||||||
;; Show more candidates
|
|
||||||
;; (setq vertico-count 20)
|
|
||||||
|
|
||||||
;; Grow and shrink the Vertico minibuffer
|
|
||||||
(setq vertico-resize t)
|
|
||||||
|
|
||||||
;; Optionally enable cycling for `vertico-next' and `vertico-previous'.
|
|
||||||
(setq vertico-cycle t))
|
|
||||||
|
|
||||||
;; Persist history over Emacs restarts. Vertico sorts by history position.
|
|
||||||
(use-package savehist
|
|
||||||
:init
|
|
||||||
(savehist-mode))
|
|
||||||
|
|
||||||
;; A few more useful configurations...
|
|
||||||
(use-package emacs
|
|
||||||
:init
|
|
||||||
;; Add prompt indicator to `completing-read-multiple'.
|
|
||||||
;; We display [CRM<separator>], e.g., [CRM,] if the separator is a comma.
|
|
||||||
(defun crm-indicator (args)
|
|
||||||
(cons (format "[CRM%s] %s"
|
|
||||||
(replace-regexp-in-string
|
|
||||||
"\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" ""
|
|
||||||
crm-separator)
|
|
||||||
(car args))
|
|
||||||
(cdr args)))
|
|
||||||
(advice-add #'completing-read-multiple :filter-args #'crm-indicator)
|
|
||||||
|
|
||||||
;; Do not allow the cursor in the minibuffer prompt
|
|
||||||
(setq minibuffer-prompt-properties
|
|
||||||
'(read-only t cursor-intangible t face minibuffer-prompt))
|
|
||||||
(add-hook 'minibuffer-setup-hook #'cursor-intangible-mode)
|
|
||||||
|
|
||||||
;; Support opening new minibuffers from inside existing minibuffers.
|
|
||||||
(setq enable-recursive-minibuffers t)
|
|
||||||
|
|
||||||
;; Emacs 28 and newer: Hide commands in M-x which do not work in the current
|
|
||||||
;; mode. Vertico commands are hidden in normal buffers. This setting is
|
|
||||||
;; useful beyond Vertico.
|
|
||||||
(setq read-extended-command-predicate #'command-completion-default-include-p))
|
|
||||||
|
|
||||||
(use-package orderless
|
|
||||||
:ensure t
|
|
||||||
:custom
|
|
||||||
(completion-styles '(orderless basic))
|
|
||||||
(completion-category-overrides '((file (styles basic partial-completion)))))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** which-key
|
|
||||||
which-key is a nice little package that allows to have a minibuffer showing which keybinds are available under prefixes.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package which-key
|
|
||||||
:config
|
|
||||||
(which-key-mode)
|
|
||||||
(which-key-add-key-based-replacements ;; naming prefixes
|
|
||||||
"C-c l" "lsp"))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
* Org mode
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package org
|
|
||||||
:hook
|
|
||||||
(org-mode . variable-pitch-mode))
|
|
||||||
#+end_src
|
|
||||||
** Pretty bullets and headlines
|
|
||||||
I use org-superstar-mode, as it makes headlines and bullets look really nice.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package org-superstar
|
|
||||||
:defer t
|
|
||||||
:hook (org-mode . org-superstar-mode))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** toc-org
|
|
||||||
This allows generating the table of contents you can find at the beginning of this file.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package toc-org
|
|
||||||
:hook (org-mode . toc-org-mode))
|
|
||||||
#+end_src
|
|
||||||
* Programming
|
|
||||||
** Eglot
|
|
||||||
Eglot is a built in LSP client for Emacs. I prefer it to LSP as it's more lightweight and more straightforward to setup correctly.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package eglot
|
|
||||||
:defer t
|
|
||||||
:config
|
|
||||||
(setq eglot-events-buffer-size 0) ;; important performance fix (https://www.gnu.org/software/emacs/manual/html_node/eglot/Performance.html)
|
|
||||||
(advice-add 'jsonrpc--log-event :override #'ignore)
|
|
||||||
:bind (:map eglot-mode-map
|
|
||||||
("C-c l h" . eldoc)
|
|
||||||
("C-c l r" . eglot-rename)
|
|
||||||
("C-c l f" . eglot-format-buffer))
|
|
||||||
:hook ((tsx-ts-mode . eglot-ensure)
|
|
||||||
(typescript-ts-mode . eglot-ensure)
|
|
||||||
(python-ts-mode . eglot-ensure)
|
|
||||||
(go-ts-mode . eglot-ensure)
|
|
||||||
(eglot--managed-mode . electric-pair-mode)
|
|
||||||
(eglot--managed-mode . (lambda ()
|
|
||||||
(add-hook 'after-save-hook #'eglot-format-buffer nil t)))
|
|
||||||
(eglot--managed-mode . display-line-numbers-mode)))
|
|
||||||
|
|
||||||
|
|
||||||
(setq-default eglot-workspace-configuration '(:typescript (:format (:indentSize 2
|
|
||||||
:convertTabsToSpaces t
|
|
||||||
:semicolons "remove"))))
|
|
||||||
;; makes eglot faster using a rust wrapper, needs to be in PATH
|
|
||||||
(use-package eglot-booster
|
|
||||||
:defer t
|
|
||||||
:vc (:fetcher github :repo jdtsmith/eglot-booster)
|
|
||||||
:after eglot
|
|
||||||
:config
|
|
||||||
(eglot-booster-mode))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Autocompletion
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
|
|
||||||
(use-package corfu
|
|
||||||
:defer t
|
|
||||||
:custom
|
|
||||||
(corfu-auto t)
|
|
||||||
:init
|
|
||||||
(global-corfu-mode)
|
|
||||||
(setq corfu-popupinfo-delay 0.2)
|
|
||||||
(corfu-popupinfo-mode))
|
|
||||||
|
|
||||||
(use-package nerd-icons-corfu
|
|
||||||
:after corfu
|
|
||||||
:config
|
|
||||||
(add-to-list 'corfu-margin-formatters #'nerd-icons-corfu-formatter))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Snippets
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package yasnippet
|
|
||||||
:defer t
|
|
||||||
:ensure t
|
|
||||||
:diminish yas-minor-mode
|
|
||||||
:hook (prog-mode . yas-minor-mode)
|
|
||||||
:bind (:map yas-minor-mode-map
|
|
||||||
("C-c C-e" . yas-expand)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Magit
|
|
||||||
Magit is a git client in Emacs.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package magit
|
|
||||||
:defer t)
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Docker
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package docker
|
|
||||||
:defer t
|
|
||||||
:ensure t
|
|
||||||
:bind ("C-c d" . docker))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** popper
|
|
||||||
|
|
||||||
Popper is a package that allows us to have popup buffers. This is really useful when working with REPL languages such as Javascript or Go.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package popper
|
|
||||||
:ensure t ; or :straight t
|
|
||||||
:bind (("C-c p t" . popper-toggle)
|
|
||||||
("C-c p c" . popper-cycle)
|
|
||||||
("C-c p w" . popper-toggle-type)
|
|
||||||
("C-c p k" . popper-kill-latest-popup))
|
|
||||||
:init
|
|
||||||
(setq popper-reference-buffers
|
|
||||||
'("\\*Messages\\*"
|
|
||||||
"Output\\*$"
|
|
||||||
"\\*Async Shell Command\\*"
|
|
||||||
help-mode
|
|
||||||
compilation-mode
|
|
||||||
"^\\*eshell.*\\*$" eshell-mode
|
|
||||||
"^\\*shell.*\\*$" shell-mode
|
|
||||||
"^\\*term.*\\*$" term-mode
|
|
||||||
"^\\*vterm.*\\*$" vterm-mode))
|
|
||||||
(which-key-add-key-based-replacements
|
|
||||||
"C-c p" "popper")
|
|
||||||
(popper-mode)
|
|
||||||
(popper-echo-mode))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Languages
|
|
||||||
*** tree-sitter
|
|
||||||
Tree-sitter is a built-in Emacs package that allows us to have extremely well integrated language grammar. Here, we're setting up the list of sources, most of them being on tree-sitter's official GitHub, as well as hooking up the languages to their different modes.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(setq treesit-font-lock-level 4) ;; more coloring!
|
|
||||||
(setq treesit-language-source-alist
|
|
||||||
'((bash "https://github.com/tree-sitter/tree-sitter-bash")
|
|
||||||
(cmake "https://github.com/uyha/tree-sitter-cmake")
|
|
||||||
(css "https://github.com/tree-sitter/tree-sitter-css")
|
|
||||||
(elisp "https://github.com/Wilfred/tree-sitter-elisp")
|
|
||||||
(go "https://github.com/tree-sitter/tree-sitter-go")
|
|
||||||
(gomod "https://github.com/camdencheek/tree-sitter-go-mod")
|
|
||||||
(html "https://github.com/tree-sitter/tree-sitter-html")
|
|
||||||
(javascript "https://github.com/tree-sitter/tree-sitter-javascript" "master" "src")
|
|
||||||
(json "https://github.com/tree-sitter/tree-sitter-json")
|
|
||||||
(make "https://github.com/alemuller/tree-sitter-make")
|
|
||||||
(markdown "https://github.com/ikatyang/tree-sitter-markdown")
|
|
||||||
(python "https://github.com/tree-sitter/tree-sitter-python")
|
|
||||||
(toml "https://github.com/tree-sitter/tree-sitter-toml")
|
|
||||||
(templ "https://github.com/vrischmann/tree-sitter-templ")
|
|
||||||
(tsx "https://github.com/tree-sitter/tree-sitter-typescript" "master" "tsx/src")
|
|
||||||
(typescript "https://github.com/tree-sitter/tree-sitter-typescript" "master" "typescript/src")
|
|
||||||
(yaml "https://github.com/ikatyang/tree-sitter-yaml")))
|
|
||||||
|
|
||||||
;; mode bindings to file extensions
|
|
||||||
(setq auto-mode-alist
|
|
||||||
(append '(("\\.ts\\'" . tsx-ts-mode)
|
|
||||||
("\\.tsx\\'" . tsx-ts-mode)
|
|
||||||
("\\.py\\'" . python-ts-mode)
|
|
||||||
("\\.go\\'" . go-ts-mode))
|
|
||||||
auto-mode-alist))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
*** Eat
|
|
||||||
|
|
||||||
Eat (Emulate a Terminal) is an emacs terminal emulator. It also integrates with eshell, and is needed in order to render full-screen terminal applications, which eshell struggles to do.
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
(use-package eat
|
|
||||||
:hook
|
|
||||||
((eshell-load . eat-eshell-mode)
|
|
||||||
(eshell-load . eat-eshell-mode)))
|
|
||||||
#+end_src
|
|
||||||
|
|
||||||
;; Local Variables:
|
|
||||||
;; eval: (add-hook 'after-save-hook (lambda ()(if (y-or-n-p "Reload?")(load-file user-init-file))) nil t)
|
|
||||||
;; eval: (add-hook 'after-save-hook (lambda ()(if (y-or-n-p "Tangle?")(org-babel-tangle))) nil t)
|
|
||||||
;; End:
|
|
|
@ -1,16 +0,0 @@
|
||||||
;; Enable local variables
|
|
||||||
(setq enable-local-variables :all)
|
|
||||||
|
|
||||||
;; Paths to config.org and the tangled init.el
|
|
||||||
(defvar org-config-file (expand-file-name "README.org" user-emacs-directory))
|
|
||||||
(defvar tangled-init-file (expand-file-name "init.el" user-emacs-directory))
|
|
||||||
|
|
||||||
;; Function to tangle the org file
|
|
||||||
(defun tangle-org-config ()
|
|
||||||
(require 'org)
|
|
||||||
(org-babel-tangle-file org-config-file))
|
|
||||||
|
|
||||||
;; Check if config.org is newer than init.el and tangle if necessary
|
|
||||||
(when (file-newer-than-file-p org-config-file tangled-init-file)
|
|
||||||
(tangle-org-config))
|
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
[init]
|
|
||||||
defaultBranch = main
|
|
||||||
[user]
|
|
||||||
name = Anthony Rodriguez
|
|
||||||
email = anthony@nezia.dev
|
|
||||||
signingkey = EE3BE97C040A86CE
|
|
||||||
[commit]
|
|
||||||
gpgsign = true
|
|
||||||
[pull]
|
|
||||||
rebase = true
|
|
||||||
[push]
|
|
||||||
autoSetupRemote = true
|
|
|
@ -1,19 +0,0 @@
|
||||||
# DO NOT EDIT! This file will be overwritten by nwg-look.
|
|
||||||
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
|
||||||
|
|
||||||
include "/home/tony/.gtkrc-2.0.mine"
|
|
||||||
gtk-theme-name="Catppuccin-Mocha-Standard-Lavender-Dark"
|
|
||||||
gtk-icon-theme-name="Adwaita"
|
|
||||||
gtk-font-name="Cantarell 11"
|
|
||||||
gtk-cursor-theme-name="Adwaita"
|
|
||||||
gtk-cursor-theme-size=24
|
|
||||||
gtk-toolbar-style=GTK_TOOLBAR_ICONS
|
|
||||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
|
||||||
gtk-button-images=0
|
|
||||||
gtk-menu-images=0
|
|
||||||
gtk-enable-event-sounds=1
|
|
||||||
gtk-enable-input-feedback-sounds=0
|
|
||||||
gtk-xft-antialias=1
|
|
||||||
gtk-xft-hinting=1
|
|
||||||
gtk-xft-hintstyle="hintslight"
|
|
||||||
gtk-xft-rgba="rgb"
|
|
|
@ -1,3 +0,0 @@
|
||||||
export EDITOR=nvim
|
|
||||||
export VISUAL="codium --wait"
|
|
||||||
. "$HOME/.cargo/env"
|
|
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
wallpaper=$(ls "$HOME/".wallpapers/** | shuf -n 1)
|
|
||||||
|
|
||||||
cat << EOF > ~/.config/hypr/hyprpaper.conf
|
|
||||||
preload = $wallpaper
|
|
||||||
wallpaper = eDP-1, $wallpaper
|
|
||||||
EOF
|
|
|
@ -1,15 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
shopt -s nullglob globstar
|
|
||||||
|
|
||||||
prefix=${PASSWORD_STORE_DIR-~/.password-store}
|
|
||||||
password_files=( "$prefix"/**/*.gpg )
|
|
||||||
password_files=( "${password_files[@]#"$prefix"/}" )
|
|
||||||
password_files=( "${password_files[@]%.gpg}" )
|
|
||||||
|
|
||||||
password=$(printf '%s\n' "${password_files[@]}" | wofi --dmenu "$@")
|
|
||||||
|
|
||||||
[[ -n $password ]] || exit
|
|
||||||
|
|
||||||
pass show "$password" -c
|
|
||||||
|
|
|
@ -1,11 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
CONFIG_FILES="$HOME/.config/waybar/config.jsonc $HOME/.config/waybar/style.css"
|
|
||||||
|
|
||||||
trap "killall waybar" EXIT
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
waybar &
|
|
||||||
inotifywait -e create,modify $CONFIG_FILES
|
|
||||||
killall waybar
|
|
||||||
done
|
|
|
@ -1,5 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
[ ! -d $HOME/org ] && rclone copy drive:org $HOME/org
|
|
||||||
rclone sync $HOME/org --include "**.{org,png,jpeg}" drive:org
|
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,98 +0,0 @@
|
||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Starts a scan of available broadcasting SSIDs
|
|
||||||
# nmcli dev wifi rescan
|
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
|
|
||||||
FIELDS=SSID,SECURITY
|
|
||||||
POSITION=0
|
|
||||||
YOFF=0
|
|
||||||
XOFF=0
|
|
||||||
|
|
||||||
if [ -r "$DIR/config" ]; then
|
|
||||||
source "$DIR/config"
|
|
||||||
elif [ -r "$HOME/.config/wofi/wifi" ]; then
|
|
||||||
source "$HOME/.config/wofi/wifi"
|
|
||||||
else
|
|
||||||
echo "WARNING: config file not found! Using default values."
|
|
||||||
fi
|
|
||||||
|
|
||||||
LIST=$(nmcli --fields "$FIELDS" device wifi list | sed '/^--/d')
|
|
||||||
# For some reason wofi always approximates character width 2 short... hmmm
|
|
||||||
RWIDTH=$(($(echo "$LIST" | head -n 1 | awk '{print length($0); }')*10))
|
|
||||||
# Dynamically change the height of the wofi menu
|
|
||||||
LINENUM=$(echo "$LIST" | wc -l)
|
|
||||||
# Gives a list of known connections so we can parse it later
|
|
||||||
KNOWNCON=$(nmcli connection show)
|
|
||||||
# Really janky way of telling if there is currently a connection
|
|
||||||
CONSTATE=$(nmcli -fields WIFI g)
|
|
||||||
|
|
||||||
CURRSSID=$(LANGUAGE=C nmcli -t -f active,ssid dev wifi | awk -F: '$1 ~ /^yes/ {print $2}')
|
|
||||||
|
|
||||||
if [[ ! -z $CURRSSID ]]; then
|
|
||||||
HIGHLINE=$(echo "$(echo "$LIST" | awk -F "[ ]{2,}" '{print $1}' | grep -Fxn -m 1 "$CURRSSID" | awk -F ":" '{print $1}') + 1" | bc )
|
|
||||||
fi
|
|
||||||
|
|
||||||
# HOPEFULLY you won't need this as often as I do
|
|
||||||
# If there are more than 8 SSIDs, the menu will still only have 8 lines
|
|
||||||
if [ "$LINENUM" -gt 8 ] && [[ "$CONSTATE" =~ "enabled" ]]; then
|
|
||||||
LINENUM=8
|
|
||||||
elif [[ "$CONSTATE" =~ "disabled" ]]; then
|
|
||||||
LINENUM=1
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "$CONSTATE" =~ "enabled" ]]; then
|
|
||||||
TOGGLE="toggle off"
|
|
||||||
elif [[ "$CONSTATE" =~ "disabled" ]]; then
|
|
||||||
TOGGLE="toggle on"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
CHENTRY=$(echo -e "$TOGGLE\nmanual\n$LIST" | uniq -u | wofi -i -d --prompt "Wi-Fi SSID: " --lines "$LINENUM" --location "$POSITION" --yoffset "$YOFF" --xoffset "$XOFF" --width $RWIDTH)
|
|
||||||
#echo "$CHENTRY"
|
|
||||||
CHSSID=$(echo "$CHENTRY" | sed 's/\s\{2,\}/\|/g' | awk -F "|" '{print $1}')
|
|
||||||
#echo "$CHSSID"
|
|
||||||
|
|
||||||
# If the user inputs "manual" as their SSID in the start window, it will bring them to this screen
|
|
||||||
if [ "$CHENTRY" = "manual" ] ; then
|
|
||||||
# Manual entry of the SSID and password (if appplicable)
|
|
||||||
MSSID=$(echo "enter the SSID of the network (SSID,password)" | wofi -d "Manual Entry: " --lines 1)
|
|
||||||
# Separating the password from the entered string
|
|
||||||
MPASS=$(echo "$MSSID" | awk -F "," '{print $2}')
|
|
||||||
|
|
||||||
#echo "$MSSID"
|
|
||||||
#echo "$MPASS"
|
|
||||||
|
|
||||||
# If the user entered a manual password, then use the password nmcli command
|
|
||||||
if [ "$MPASS" = "" ]; then
|
|
||||||
nmcli dev wifi con "$MSSID"
|
|
||||||
else
|
|
||||||
nmcli dev wifi con "$MSSID" password "$MPASS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
elif [ "$CHENTRY" = "toggle on" ]; then
|
|
||||||
nmcli radio wifi on
|
|
||||||
|
|
||||||
elif [ "$CHENTRY" = "toggle off" ]; then
|
|
||||||
nmcli radio wifi off
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
# If the connection is already in use, then this will still be able to get the SSID
|
|
||||||
if [ "$CHSSID" = "*" ]; then
|
|
||||||
CHSSID=$(echo "$CHENTRY" | sed 's/\s\{2,\}/\|/g' | awk -F "|" '{print $3}')
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Parses the list of preconfigured connections to see if it already contains the chosen SSID. This speeds up the connection process
|
|
||||||
if [[ $(echo "$KNOWNCON" | grep "$CHSSID") = "$CHSSID" ]]; then
|
|
||||||
nmcli con up "$CHSSID"
|
|
||||||
else
|
|
||||||
if [[ "$CHENTRY" =~ "WPA2" ]] || [[ "$CHENTRY" =~ "WEP" ]]; then
|
|
||||||
WIFIPASS=$(echo "if connection is stored, hit enter" | wofi -P -d --prompt "password" --lines 1 --location "$POSITION" --yoffset "$YOFF" --xoffset "$XOFF" --width $RWIDTH)
|
|
||||||
fi
|
|
||||||
nmcli dev wifi con "$CHSSID" password "$WIFIPASS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
fi
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946
|
|
|
@ -1,12 +0,0 @@
|
||||||
/**
|
|
||||||
* @name Catppuccin Frappe
|
|
||||||
* @author winston#0001
|
|
||||||
* @authorId 505490445468696576
|
|
||||||
* @version 0.2.0
|
|
||||||
* @description 🎮 Soothing pastel theme for Discord
|
|
||||||
* @website https://github.com/catppuccin/discord
|
|
||||||
* @invite r6Mdz5dpFc
|
|
||||||
* **/
|
|
||||||
|
|
||||||
@import url("https://catppuccin.github.io/discord/dist/catppuccin-frappe.theme.css");
|
|
||||||
|
|
359
flake.lock
Normal file
359
flake.lock
Normal file
|
@ -0,0 +1,359 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"devshell": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722113426,
|
||||||
|
"narHash": "sha256-Yo/3loq572A8Su6aY5GP56knpuKYRvM2a1meP9oJZCw=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"rev": "67cce7359e4cd3c45296fb4aaf6a19e2a9c757ae",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "devshell",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"revCount": 57,
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1722555600,
|
||||||
|
"narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "8471fe90ad337a8074e957b69ca4d0089218391d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git-hooks": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": [
|
||||||
|
"nixvim",
|
||||||
|
"flake-compat"
|
||||||
|
],
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724440431,
|
||||||
|
"narHash": "sha256-9etXEOUtzeMgqg1u0wp+EdwG7RpmrAZ2yX516bMj2aE=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "c8a54057aae480c56e28ef3e14e4960628ac495b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"git-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1709087332,
|
||||||
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724435763,
|
||||||
|
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724435763,
|
||||||
|
"narHash": "sha256-UNky3lJNGQtUEXT2OY8gMxejakSWPTfWKvpFkpFlAfM=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "c2cd2a52e02f1dfa1c88f95abeb89298d46023be",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nix-darwin": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724469941,
|
||||||
|
"narHash": "sha256-+U5152FwmDD9EUOiFi5CFxCK6/yFESyDei9jEIlmUtI=",
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "ea319a737939094b48fda9063fa3201ef2479aac",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lnl7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"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"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1721524707,
|
||||||
|
"narHash": "sha256-5NctRsoE54N86nWd0psae70YSLfrOek3Kv1e8KoXe/0=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "556533a23879fc7e5f98dd2e0b31a6911a213171",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "release-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixvim": {
|
||||||
|
"inputs": {
|
||||||
|
"devshell": "devshell",
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
|
"home-manager": "home-manager_2",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nuschtosSearch": "nuschtosSearch",
|
||||||
|
"treefmt-nix": "treefmt-nix"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724528976,
|
||||||
|
"narHash": "sha256-5W13nD/5ySIsxSvDqXHlj4bg2F3tNcYGKCGudWzpNzw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"rev": "8234ee85eaa2c8b7f2c74f5b4cdf02c4965b07fc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "nixvim",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nuschtosSearch": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1723969429,
|
||||||
|
"narHash": "sha256-BuewfNEXEf11MIkJY+uvWsdLu1dIvgJqntWChvNdALg=",
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"rev": "a05d1805f2a2bc47d230e5e92aecbf69f784f3d0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NuschtOS",
|
||||||
|
"repo": "search",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"home-manager": "home-manager",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"nixvim": "nixvim",
|
||||||
|
"shells": "shells",
|
||||||
|
"sops-nix": "sops-nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shells": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1,
|
||||||
|
"narHash": "sha256-i5bBg0nqy1IOYhkr0SrICMSk3i3UVQyTjftkJwMdnEw=",
|
||||||
|
"path": "/nix/store/vralh6zrl13i5ri9pzgl22k5f99fx4am-source/shells",
|
||||||
|
"type": "path"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"path": "/nix/store/vralh6zrl13i5ri9pzgl22k5f99fx4am-source/shells",
|
||||||
|
"type": "path"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sops-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1723501126,
|
||||||
|
"narHash": "sha256-N9IcHgj/p1+2Pvk8P4Zc1bfrMwld5PcosVA0nL6IGdE=",
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"rev": "be0eec2d27563590194a9206f551a6f73d52fa34",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Mic92",
|
||||||
|
"repo": "sops-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"treefmt-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixvim",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1724338379,
|
||||||
|
"narHash": "sha256-kKJtaiU5Ou+e/0Qs7SICXF22DLx4V/WhG1P6+k4yeOE=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"rev": "070f834771efa715f3e74cd8ab93ecc96fabc951",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "treefmt-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
68
flake.nix
Normal file
68
flake.nix
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{
|
||||||
|
description = "nezia's nixos configuration";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
|
nixvim = {
|
||||||
|
url = "github:nix-community/nixvim";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
sops-nix = {
|
||||||
|
url = "github:Mic92/sops-nix";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
shells = {
|
||||||
|
url = "./shells";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { nixpkgs, home-manager, nixvim, sops-nix, shells, ... }@inputs:
|
||||||
|
let
|
||||||
|
username = "nezia";
|
||||||
|
in {
|
||||||
|
nixosConfigurations = {
|
||||||
|
vamos =
|
||||||
|
let hostname = "vamos";
|
||||||
|
in nixpkgs.lib.nixosSystem {
|
||||||
|
|
||||||
|
system = "x86_64-linux";
|
||||||
|
|
||||||
|
modules = [
|
||||||
|
./hosts/${hostname}
|
||||||
|
sops-nix.nixosModules.sops
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.sharedModules = [ nixvim.homeManagerModules.nixvim ];
|
||||||
|
home-manager.users.nezia = import ./home/laptop;
|
||||||
|
home-manager.extraSpecialArgs = { inherit inputs; };
|
||||||
|
}
|
||||||
|
{ _module.args = { inherit hostname username; }; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
solaire = let
|
||||||
|
hostname = "solaire";
|
||||||
|
in nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
modules = [
|
||||||
|
./hosts/${hostname}
|
||||||
|
sops-nix.nixosModules.sops
|
||||||
|
home-manager.nixosModules.home-manager
|
||||||
|
{
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
home-manager.useUserPackages = true;
|
||||||
|
home-manager.sharedModules = [ nixvim.homeManagerModules.nixvim ];
|
||||||
|
home-manager.users.nezia = import ./home/desktop;
|
||||||
|
}
|
||||||
|
{ _module.args = { inherit hostname username; }; }
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
5
home/base/automount.nix
Normal file
5
home/base/automount.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.udiskie.enable = true;
|
||||||
|
}
|
9
home/base/core.nix
Normal file
9
home/base/core.nix
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{ inputs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home.username = "nezia";
|
||||||
|
home.homeDirectory = "/home/nezia";
|
||||||
|
programs.home-manager.enable = true;
|
||||||
|
nix.registry.shells.flake = inputs.shells;
|
||||||
|
home.stateVersion = "24.05";
|
||||||
|
}
|
13
home/base/default.nix
Normal file
13
home/base/default.nix
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./core.nix
|
||||||
|
./fonts.nix
|
||||||
|
./automount.nix
|
||||||
|
./mime.nix
|
||||||
|
./gnome
|
||||||
|
./shell
|
||||||
|
./programs
|
||||||
|
];
|
||||||
|
}
|
18
home/base/fonts.nix
Normal file
18
home/base/fonts.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
fonts = {
|
||||||
|
fontconfig = {
|
||||||
|
enable = true;
|
||||||
|
defaultFonts = {
|
||||||
|
monospace = [ "MonaspiceNe Nerd Font" ];
|
||||||
|
emoji = [ "Noto Color Emoji "];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
noto-fonts-color-emoji
|
||||||
|
(nerdfonts.override { fonts = [ "Monaspace" ]; })
|
||||||
|
];
|
||||||
|
}
|
48
home/base/gnome/default.nix
Normal file
48
home/base/gnome/default.nix
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
dconf = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
"org/gnome/shell" = {
|
||||||
|
disable-user-extensions = false; # enables user extensions
|
||||||
|
enabled-extensions = [
|
||||||
|
pkgs.gnomeExtensions.appindicator.extensionUuid
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
};
|
||||||
|
"org/gnome/desktop/input-sources" = {
|
||||||
|
xkb-options = [ "compose:ralt" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
home.packages = with pkgs.gnomeExtensions; [
|
||||||
|
appindicator
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.gnome-terminal = {
|
||||||
|
enable = true;
|
||||||
|
showMenubar = false;
|
||||||
|
profile."7dfaed12-b68d-4459-8cb9-ecd3d49f3634" = {
|
||||||
|
visibleName = "Catppuccin Frappe";
|
||||||
|
default = true;
|
||||||
|
font = "MonaspiceNe Nerd Font 14";
|
||||||
|
customCommand = "tmux new-session -A -s main";
|
||||||
|
colors = {
|
||||||
|
palette = [ "#51576d" "#e78284" "#a6d189" "#e5c890" "#8caaee" "#f4b8e4" "#81c8be" "#b5bfe2" "#626880" "#e78284" "#a6d189" "#e5c890" "#8caaee" "#f4b8e4" "#81c8be" "#a5adce" ];
|
||||||
|
backgroundColor = "#303446";
|
||||||
|
foregroundColor = "#c6d0f5";
|
||||||
|
cursor = {
|
||||||
|
background = "#f2d5cf";
|
||||||
|
foreground = "#303446";
|
||||||
|
};
|
||||||
|
highlight = {
|
||||||
|
background = "#f2d5cf";
|
||||||
|
foreground = "#626880";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
16
home/base/mime.nix
Normal file
16
home/base/mime.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
xdg.mimeApps = {
|
||||||
|
enable = true;
|
||||||
|
defaultApplications = {
|
||||||
|
"default-web-browser" = [ "firefox.desktop" ];
|
||||||
|
"text/html" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/http" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/https" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/about" = [ "firefox.desktop" ];
|
||||||
|
"x-scheme-handler/unknown" = [ "firefox.desktop" ];
|
||||||
|
"application/pdf" = [ "org.gnome.Evince.desktop" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
6
home/base/programs/browsers.nix
Normal file
6
home/base/programs/browsers.nix
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.firefox.enable = true;
|
||||||
|
programs.chromium.enable = true;
|
||||||
|
}
|
12
home/base/programs/default.nix
Normal file
12
home/base/programs/default.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./git.nix
|
||||||
|
./gnupg.nix
|
||||||
|
./nixvim
|
||||||
|
./tmux.nix
|
||||||
|
./browsers.nix
|
||||||
|
./miscellaneous.nix
|
||||||
|
];
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue