mirror of
https://github.com/itme-brain/nixos.git
synced 2026-03-24 00:29:43 -04:00
its time
This commit is contained in:
parent
cc18493707
commit
6fff6d1845
673 changed files with 1070 additions and 124971 deletions
|
|
@ -1,92 +0,0 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.alacritty;
|
||||
|
||||
in
|
||||
{ options.modules.alacritty = { enable = mkEnableOption "alacritty"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
scrolling = {
|
||||
history = 10000;
|
||||
multiplier = 3;
|
||||
};
|
||||
|
||||
window = {
|
||||
opacity = 0.95;
|
||||
};
|
||||
|
||||
colors = {
|
||||
primary = {
|
||||
background = 0x0d1117;
|
||||
foreground = 0xb3b1ad;
|
||||
};
|
||||
|
||||
normal = {
|
||||
black = 0x484f58;
|
||||
red = 0xff7b72;
|
||||
green = 0x3fb950;
|
||||
yellow = 0xd29922;
|
||||
blue = 0x58a6ff;
|
||||
magenta = 0xbc8cff;
|
||||
cyan = 0x39c5cf;
|
||||
white = 0xb1bac4;
|
||||
};
|
||||
|
||||
bright = {
|
||||
black = 0x6e7681;
|
||||
red = 0xffa198;
|
||||
green = 0x56d364;
|
||||
yellow = 0xe3b341;
|
||||
blue = 0x79c0ff;
|
||||
magenta = 0xd2a8ff;
|
||||
cyan = 0x56d4dd;
|
||||
white = 0xf0f6fc;
|
||||
};
|
||||
};
|
||||
|
||||
font = {
|
||||
normal = {
|
||||
family = terminus-nerdfont;
|
||||
style = Medium;
|
||||
};
|
||||
|
||||
bold = {
|
||||
family = terminus-nerdfont;
|
||||
style = Bold;
|
||||
};
|
||||
|
||||
italic = {
|
||||
family = terminus-nerdfont;
|
||||
style = Medium Italic;
|
||||
};
|
||||
|
||||
bold_italic = {
|
||||
family = terminus-nerdfont;
|
||||
style = Bold Italic;
|
||||
};
|
||||
};
|
||||
|
||||
size = 14;
|
||||
|
||||
cursor = {
|
||||
color = 0xffffff;
|
||||
style = {
|
||||
shape = Block;
|
||||
blinking = Always;
|
||||
blink-interval = 750;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
terminus-nerdfont
|
||||
ranger
|
||||
highlight
|
||||
];
|
||||
};
|
||||
}
|
||||
78
homeConfig/modules/alacritty/config/alacritty.nix
Normal file
78
homeConfig/modules/alacritty/config/alacritty.nix
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
enable = true;
|
||||
settings = {
|
||||
scrolling = {
|
||||
history = 10000;
|
||||
multiplier = 3;
|
||||
};
|
||||
|
||||
window = {
|
||||
opacity = 0.95;
|
||||
};
|
||||
|
||||
colors = {
|
||||
primary = {
|
||||
background = 0x0d1117;
|
||||
foreground = 0xb3b1ad;
|
||||
};
|
||||
|
||||
normal = {
|
||||
black = 0x484f58;
|
||||
red = 0xff7b72;
|
||||
green = 0x3fb950;
|
||||
yellow = 0xd29922;
|
||||
blue = 0x58a6ff;
|
||||
magenta = 0xbc8cff;
|
||||
cyan = 0x39c5cf;
|
||||
white = 0xb1bac4;
|
||||
};
|
||||
|
||||
bright = {
|
||||
black = 0x6e7681;
|
||||
red = 0xffa198;
|
||||
green = 0x56d364;
|
||||
yellow = 0xe3b341;
|
||||
blue = 0x79c0ff;
|
||||
magenta = 0xd2a8ff;
|
||||
cyan = 0x56d4dd;
|
||||
white = 0xf0f6fc;
|
||||
};
|
||||
};
|
||||
|
||||
font = {
|
||||
normal = {
|
||||
family = terminus-nerdfont;
|
||||
style = Medium;
|
||||
};
|
||||
|
||||
bold = {
|
||||
family = terminus-nerdfont;
|
||||
style = Bold;
|
||||
};
|
||||
|
||||
italic = {
|
||||
family = terminus-nerdfont;
|
||||
style = Medium Italic;
|
||||
};
|
||||
|
||||
bold_italic = {
|
||||
family = terminus-nerdfont;
|
||||
style = Bold Italic;
|
||||
};
|
||||
};
|
||||
|
||||
size = 14;
|
||||
|
||||
cursor = {
|
||||
color = 0xffffff;
|
||||
style = {
|
||||
shape = Block;
|
||||
blinking = Always;
|
||||
blink-interval = 750;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
18
homeConfig/modules/alacritty/default.nix
Normal file
18
homeConfig/modules/alacritty/default.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.alacritty;
|
||||
|
||||
in
|
||||
{ options.modules.alacritty = { enable = mkEnableOption "alacritty"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.alacritty = import ./alacritty.nix { inherit pkgs; };
|
||||
|
||||
home.packages = with pkgs; [
|
||||
terminus-nerdfont
|
||||
ranger
|
||||
highlight
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,202 +0,0 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.bash;
|
||||
|
||||
in
|
||||
{ options.modules.bash = { enable = mkEnableOption "bash"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
initExtra = ''
|
||||
eval "$(direnv hook bash)"
|
||||
|
||||
is_ssh_session() {
|
||||
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function set_ps1_prompt() {
|
||||
local git_branch=""
|
||||
local flake_icon=""
|
||||
local cur_dir=""
|
||||
|
||||
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
git_branch="$(git symbolic-ref --short HEAD 2>/dev/null)"
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
git_branch="$(git rev-parse --short HEAD 2>/dev/null)"
|
||||
fi
|
||||
|
||||
git_branch=" \[\033[01;31m\]$git_branch:\[\033[00m\]"
|
||||
|
||||
if [ -f "$(git rev-parse --show-toplevel)/flake.nix" ]; then
|
||||
# If it exists, set the flake icon and color it blue
|
||||
flake_icon="\[\033[01;34m\] \[\033[00m\]"
|
||||
fi
|
||||
|
||||
git_root="$(basename "$(git rev-parse --show-toplevel)")"
|
||||
|
||||
cur_dir=$(realpath --relative-to=$(git rev-parse --show-toplevel) .)
|
||||
if [ "$cur_dir" == "." ]; then
|
||||
cur_dir="\[\033[01;34m\] $git_root\[\033[00m\]"
|
||||
else
|
||||
cur_dir="\[\033[01;34m\] $git_root/$cur_dir\[\033[00m\]"
|
||||
fi
|
||||
else
|
||||
cur_dir="\[\033[01;34m\]\w\[\033[00m\]"
|
||||
fi
|
||||
|
||||
if [ -n "''${IN_NIX_SHELL:+x}" ]; then
|
||||
PS1="$cur_dir\n$flake_icon\[\033[01;32m\]nixShell>$git_branch\[\033[00m\]"
|
||||
else
|
||||
if ! is_ssh_session; then
|
||||
PS1="\n$cur_dir\n$flake_icon\[\033[01;32m\]>$git_branch\[\033[00m\]"
|
||||
else
|
||||
PS1="\n\[\033[01;34m\]\w\[\033[00m\]\n\[\033[01;32m\]\u@\h:\[\033[00m\] "
|
||||
fi
|
||||
fi
|
||||
unset flake_icon
|
||||
}
|
||||
PROMPT_COMMAND="set_ps1_prompt; $PROMPT_COMMAND"
|
||||
'';
|
||||
|
||||
profileExtra = ''
|
||||
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
|
||||
exec sway
|
||||
fi
|
||||
'';
|
||||
|
||||
bashrcExtra = ''
|
||||
function cdg() {
|
||||
if [[ $1 == "--help" ]]; then
|
||||
echo "A simple utility for navigating to the root of a git repo"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for invalid command
|
||||
if [[ -n "$1" ]]; then
|
||||
echo "Invalid command: $1. Try 'cdg --help'."
|
||||
return 1
|
||||
fi
|
||||
|
||||
local root_dir
|
||||
root_dir=$(git rev-parse --show-toplevel 2>/dev/null)
|
||||
local git_status=$?
|
||||
|
||||
if [ $git_status -ne 0 ]; then
|
||||
echo "Error: Not a git repo."
|
||||
return 1
|
||||
fi
|
||||
|
||||
cd "$root_dir"
|
||||
}
|
||||
|
||||
function ldv() {
|
||||
if [[ $1 == "help" ]] || [[ $1 == "-h" ]] || [[ $1 == "--help" ]]; then
|
||||
cat << EOF
|
||||
ldv
|
||||
A simple utility for setting up development environments effortlessly.
|
||||
Commands:
|
||||
ldv Start a preconfigured nix shell.
|
||||
init Create a new dev template in the current working directory.
|
||||
help Show available commands and options.
|
||||
|
||||
Contributions welcome: https://github.com/itme-brain/ldv
|
||||
EOF
|
||||
|
||||
elif [[ $1 == "init" ]] || [[ $1 == "-i" ]] || [[ $1 == "--init" ]]; then
|
||||
if [[ -e ./shell.nix ]] || [[ -e ./.envrc ]]; then
|
||||
cat << EOF
|
||||
Existing environment found.
|
||||
Initialization cancelled.
|
||||
EOF
|
||||
return
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
Initializing a new environment...
|
||||
Select an environment:
|
||||
1. Web
|
||||
2. Elixir
|
||||
3. Haskell
|
||||
EOF
|
||||
|
||||
read -p "Enter the number of your choice: " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/shells/web.nix -O shell.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/flake -O flake.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/envrc -O .envrc
|
||||
direnv allow
|
||||
;;
|
||||
2)
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/shells/elixir.nix -O shell.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/flake -O flake.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/envrc -O .envrc
|
||||
direnv allow
|
||||
;;
|
||||
3)
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/shells/haskell.nix -O shell.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/flake -O flake.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/envrc -O .envrc
|
||||
direnv allow
|
||||
;;
|
||||
*)
|
||||
echo "Invalid choice."
|
||||
;;
|
||||
esac
|
||||
elif [[ -z $1 ]]; then
|
||||
cat << EOF
|
||||
Select an environment:
|
||||
1. Web
|
||||
2. Elixir
|
||||
3. Haskell
|
||||
EOF
|
||||
|
||||
read -p "Enter the number of your choice: " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
(nix develop github:itme-brain/ldv#web)
|
||||
;;
|
||||
2)
|
||||
(nix develop github:itme-brain/ldv#elixir)
|
||||
;;
|
||||
3)
|
||||
(nix develop github:itme-brain/ldv#haskell)
|
||||
;;
|
||||
# Add more cases here...
|
||||
*)
|
||||
echo "Invalid choice."
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "Error: Invalid command. Try 'ldv --help'"
|
||||
fi
|
||||
}
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
hmup = "home-manager switch --flake '$HOME/Documents/projects/nixos#bryan'";
|
||||
nixup = "sudo nixos-rebuild switch --flake '$HOME/Documents/projects/nixos#socrates'";
|
||||
};
|
||||
};
|
||||
|
||||
services.gpg-agent.enableBashIntegration = true;
|
||||
programs = {
|
||||
direnv.nix-direnv.enable = true;
|
||||
ripgrep.enable = true;
|
||||
lsd = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
4
homeConfig/modules/bash/config/alias.nix
Normal file
4
homeConfig/modules/bash/config/alias.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
''
|
||||
hmup = "home-manager switch --flake '$HOME/Documents/projects/nixos#bryan'";
|
||||
nixup = "sudo nixos-rebuild switch --flake '$HOME/Documents/projects/nixos#socratesV2'";
|
||||
''
|
||||
5
homeConfig/modules/bash/config/bashprofile.nix
Normal file
5
homeConfig/modules/bash/config/bashprofile.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
''
|
||||
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
|
||||
exec sway
|
||||
fi
|
||||
''
|
||||
110
homeConfig/modules/bash/config/bashrc.nix
Normal file
110
homeConfig/modules/bash/config/bashrc.nix
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
''
|
||||
function cdg() {
|
||||
if [[ $1 == "--help" ]]; then
|
||||
echo "A simple utility for navigating to the root of a git repo"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for invalid command
|
||||
if [[ -n "$1" ]]; then
|
||||
echo "Invalid command: $1. Try 'cdg --help'."
|
||||
return 1
|
||||
fi
|
||||
|
||||
local root_dir
|
||||
root_dir=$(git rev-parse --show-toplevel 2>/dev/null)
|
||||
local git_status=$?
|
||||
|
||||
if [ $git_status -ne 0 ]; then
|
||||
echo "Error: Not a git repo."
|
||||
return 1
|
||||
fi
|
||||
|
||||
cd "$root_dir"
|
||||
}
|
||||
|
||||
function ldv() {
|
||||
if [[ $1 == "help" ]] || [[ $1 == "-h" ]] || [[ $1 == "--help" ]]; then
|
||||
cat << EOF
|
||||
ldv
|
||||
A simple utility for setting up development environments effortlessly.
|
||||
Commands:
|
||||
ldv Start a preconfigured nix shell.
|
||||
init Create a new dev template in the current working directory.
|
||||
help Show available commands and options.
|
||||
|
||||
Contributions welcome: https://github.com/itme-brain/ldv
|
||||
EOF
|
||||
|
||||
elif [[ $1 == "init" ]] || [[ $1 == "-i" ]] || [[ $1 == "--init" ]]; then
|
||||
if [[ -e ./shell.nix ]] || [[ -e ./.envrc ]]; then
|
||||
cat << EOF
|
||||
Existing environment found.
|
||||
Initialization cancelled.
|
||||
EOF
|
||||
return
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
Initializing a new environment...
|
||||
Select an environment:
|
||||
1. Web
|
||||
2. Elixir
|
||||
3. Haskell
|
||||
EOF
|
||||
|
||||
read -p "Enter the number of your choice: " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/shells/web.nix -O shell.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/flake -O flake.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/envrc -O .envrc
|
||||
direnv allow
|
||||
;;
|
||||
2)
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/shells/elixir.nix -O shell.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/flake -O flake.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/envrc -O .envrc
|
||||
direnv allow
|
||||
;;
|
||||
3)
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/shells/haskell.nix -O shell.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/flake -O flake.nix
|
||||
wget -q https://raw.githubusercontent.com/itme-brain/ldv/main/utils/envrc -O .envrc
|
||||
direnv allow
|
||||
;;
|
||||
*)
|
||||
echo "Invalid choice."
|
||||
;;
|
||||
esac
|
||||
elif [[ -z $1 ]]; then
|
||||
cat << EOF
|
||||
Select an environment:
|
||||
1. Web
|
||||
2. Elixir
|
||||
3. Haskell
|
||||
EOF
|
||||
|
||||
read -p "Enter the number of your choice: " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
(nix develop github:itme-brain/ldv#web)
|
||||
;;
|
||||
2)
|
||||
(nix develop github:itme-brain/ldv#elixir)
|
||||
;;
|
||||
3)
|
||||
(nix develop github:itme-brain/ldv#haskell)
|
||||
;;
|
||||
# Add more cases here...
|
||||
*)
|
||||
echo "Invalid choice."
|
||||
;;
|
||||
esac
|
||||
else
|
||||
echo "Error: Invalid command. Try 'ldv --help'"
|
||||
fi
|
||||
}
|
||||
''
|
||||
55
homeConfig/modules/bash/config/prompt.nix
Normal file
55
homeConfig/modules/bash/config/prompt.nix
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
''
|
||||
eval "$(direnv hook bash)"
|
||||
|
||||
is_ssh_session() {
|
||||
if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
function set_ps1_prompt() {
|
||||
local git_branch=""
|
||||
local flake_icon=""
|
||||
local cur_dir=""
|
||||
|
||||
if git rev-parse --is-inside-work-tree >/dev/null 2>&1; then
|
||||
git_branch="$(git symbolic-ref --short HEAD 2>/dev/null)"
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
git_branch="$(git rev-parse --short HEAD 2>/dev/null)"
|
||||
fi
|
||||
|
||||
git_branch=" \[\033[01;31m\]$git_branch:\[\033[00m\]"
|
||||
|
||||
if [ -f "$(git rev-parse --show-toplevel)/flake.nix" ]; then
|
||||
# If it exists, set the flake icon and color it blue
|
||||
flake_icon="\[\033[01;34m\] \[\033[00m\]"
|
||||
fi
|
||||
|
||||
git_root="$(basename "$(git rev-parse --show-toplevel)")"
|
||||
|
||||
cur_dir=$(realpath --relative-to=$(git rev-parse --show-toplevel) .)
|
||||
if [ "$cur_dir" == "." ]; then
|
||||
cur_dir="\[\033[01;34m\] $git_root\[\033[00m\]"
|
||||
else
|
||||
cur_dir="\[\033[01;34m\] $git_root/$cur_dir\[\033[00m\]"
|
||||
fi
|
||||
else
|
||||
cur_dir="\[\033[01;34m\]\w\[\033[00m\]"
|
||||
fi
|
||||
|
||||
if [ -n "''${IN_NIX_SHELL:+x}" ]; then
|
||||
PS1="$cur_dir\n$flake_icon\[\033[01;32m\]nixShell>$git_branch\[\033[00m\]"
|
||||
else
|
||||
if ! is_ssh_session; then
|
||||
PS1="\n$cur_dir\n$flake_icon\[\033[01;32m\]>$git_branch\[\033[00m\]"
|
||||
else
|
||||
PS1="\n\[\033[01;34m\]\w\[\033[00m\]\n\[\033[01;32m\]\u@\h:\[\033[00m\] "
|
||||
fi
|
||||
fi
|
||||
unset flake_icon
|
||||
}
|
||||
PROMPT_COMMAND="set_ps1_prompt; $PROMPT_COMMAND"
|
||||
''
|
||||
30
homeConfig/modules/bash/default.nix
Normal file
30
homeConfig/modules/bash/default.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.bash;
|
||||
|
||||
in
|
||||
{ options.modules.bash = { enable = mkEnableOption "bash"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
|
||||
initExtra = import ./config/prompt.nix;
|
||||
profileExtra = import ./config/bashprofile.nix;
|
||||
bashrcExtra = import ./bashrc.nix;
|
||||
shellAliases = import ./alias.nix;
|
||||
};
|
||||
|
||||
services.gpg-agent.enableBashIntegration = true;
|
||||
programs = {
|
||||
direnv.nix-direnv.enable = true;
|
||||
ripgrep.enable = true;
|
||||
lsd = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
{ pkgs, lib, config, user, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.firefox;
|
||||
|
||||
in
|
||||
{ options.modules.firefox = { enable = mkEnableOption "firefox"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.firefox = {
|
||||
enabled = true;
|
||||
profiles.${user} = {
|
||||
isDefault = true;
|
||||
search.default = "Startpage";
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
darkreader
|
||||
keepassxc-browser
|
||||
multi-account-containers
|
||||
];
|
||||
|
||||
settings = {
|
||||
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||
|
||||
"dom.security.https_only_mode" = true;
|
||||
"media.peerconnection.enabled" = false;
|
||||
"browser.formfill.enable" = false;
|
||||
|
||||
"privacy.sanitize.sanitizeOnShutdown" = true;
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"browser.ping-centre.telemetry" = false;
|
||||
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.trackingprotection.fingerprinting.enabled" = true;
|
||||
"privacy.trackingprotection.cryptomining.enabled" = true;
|
||||
|
||||
"geo.enabled" = false;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
google-chrome
|
||||
(tor-browser-bundle-bin.override {
|
||||
useHardenedMalloc = false; # NixOS bug requires this
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
||||
33
homeConfig/modules/browsers/config/bryan.nix
Normal file
33
homeConfig/modules/browsers/config/bryan.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
isDefault = true;
|
||||
search.default = "Startpage";
|
||||
extensions = with pkgs.nur.repos.rycee.firefox-addons; [
|
||||
ublock-origin
|
||||
darkreader
|
||||
keepassxc-browser
|
||||
multi-account-containers
|
||||
];
|
||||
|
||||
settings = {
|
||||
"extensions.activeThemeID" = "firefox-compact-dark@mozilla.org";
|
||||
|
||||
"dom.security.https_only_mode" = true;
|
||||
"media.peerconnection.enabled" = false;
|
||||
"browser.formfill.enable" = false;
|
||||
|
||||
"privacy.sanitize.sanitizeOnShutdown" = true;
|
||||
"toolkit.telemetry.enabled" = false;
|
||||
"toolkit.telemetry.archive.enabled" = false;
|
||||
"datareporting.healthreport.uploadEnabled" = false;
|
||||
"browser.ping-centre.telemetry" = false;
|
||||
|
||||
"privacy.resistFingerprinting" = true;
|
||||
"privacy.trackingprotection.fingerprinting.enabled" = true;
|
||||
"privacy.trackingprotection.cryptomining.enabled" = true;
|
||||
|
||||
"geo.enabled" = false;
|
||||
"privacy.trackingprotection.enabled" = true;
|
||||
};
|
||||
}
|
||||
22
homeConfig/modules/browsers/default.nix
Normal file
22
homeConfig/modules/browsers/default.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ pkgs, lib, config, me, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.browsers;
|
||||
|
||||
in
|
||||
{ options.modules.browsers = { enable = mkEnableOption "browsers"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.firefox = {
|
||||
enabled = true;
|
||||
profiles.${me} = import (config/${me}.nix) { inherit pkgs; };
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
google-chrome
|
||||
(tor-browser-bundle-bin.override {
|
||||
useHardenedMalloc = false; # NixOS bug requires this
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,12 +1 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.PROGRAM;
|
||||
|
||||
in
|
||||
{ options.modules.PROGRAM = { enable = mkEnableOption "PROGRAM"; };
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
};
|
||||
}
|
||||
{ imports = ./.; }
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@
|
|||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.PROGRAM;
|
||||
cfg = config.modules.fun;
|
||||
|
||||
in
|
||||
{ options.modules.PROGRAM = { enable = mkEnableOption "PROGRAM"; };
|
||||
{ options.modules.fun = { enable = mkEnableOption "fun"; };
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
spotify
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let cfg = config.modules.git;
|
||||
|
||||
in
|
||||
{
|
||||
options.modules.git = { enable = mkEnableOption "git"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs = {
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Bryan Ramos";
|
||||
userEmail = "bryan@ramos.codes";
|
||||
signingKey = "F1F3466458452B2DF351F1E864D12BA95ACE1F2D";
|
||||
|
||||
extraConfig = {
|
||||
init = { defaultBranch = "main"; };
|
||||
};
|
||||
|
||||
ignores = [
|
||||
"node_modules"
|
||||
];
|
||||
};
|
||||
|
||||
gh = {
|
||||
enable = true;
|
||||
settings.git_protocol = "ssh";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
14
homeConfig/modules/git/config/git.nix
Normal file
14
homeConfig/modules/git/config/git.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
enable = true;
|
||||
userName = "Bryan Ramos";
|
||||
userEmail = "bryan@ramos.codes";
|
||||
signingKey = "F1F3466458452B2DF351F1E864D12BA95ACE1F2D";
|
||||
|
||||
extraConfig = {
|
||||
init = { defaultBranch = "main"; };
|
||||
};
|
||||
|
||||
ignores = [
|
||||
"node_modules"
|
||||
];
|
||||
}
|
||||
19
homeConfig/modules/git/default.nix
Normal file
19
homeConfig/modules/git/default.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let cfg = config.modules.git;
|
||||
|
||||
in
|
||||
{ options.modules.git = { enable = mkEnableOption "git"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs = {
|
||||
git = import ./config/git.nix;
|
||||
|
||||
gh = {
|
||||
enable = true;
|
||||
settings.git_protocol = "ssh";
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,133 +0,0 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let cfg = config.modules.gpg;
|
||||
|
||||
in
|
||||
{ options.modules.gpg = { enable = mkEnableOption "gpg"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
publicKeys."bryan@ramos.codes" = {
|
||||
trust = 5;
|
||||
text = ''
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mQINBGP0BgMBEAC2v+n9plI0p+TqIrmvz7JHoYbtUK3NDkyNeIsgS+sE5nfLB1Ef
|
||||
vQCR0HdysgpmAUywqEx+YK7Nkr4szoK8nDLpgpSfaDZNss+ePu6eYVTVktelBn2Q
|
||||
5f5MKDILY9mkmDPgzvpDDhkFXGK3cpeUX+X5vY1W76yuRgm6zBDIux+yf027nw3U
|
||||
phesn/WlWXRsmAXG2helt1nB6Foj6LjgwRG/aKMI8cQq0JS13cfUZO1nq2ifM0pm
|
||||
4HqWgbZOKYWHsoOw4qNiuxWwVoL5E7UQW2MEyxZmLZaNohEpReYpI0N9FGB/AZYt
|
||||
iKn9SO9SmG+afE+gxrExJYZSGVHHKlPc79dcIBVvYEA8dV/OJBjHc83EhUQVU4vQ
|
||||
x1y386HYctlHVWZ64tc1XROlQe++NxfgQZz4jnvGzHMakr8/IZAV3LP3PGVAa7kx
|
||||
iVrTE+WodK/kELm1PMLWlWmXT3GiumOngm4y1dWtUirqxni/Nl7BA4eHM3Q3OZiR
|
||||
eEb80FkbXCoaP5REU1EdVlAW/ZGP+mTwiqekT5ThocaD/BgYSy9UlGf5YyOEnqOt
|
||||
G+0JfS3mG0PysFjF0B5dMyBquikD4zVBo3+a7ppbrAage3EFhHiX0Les0q566I8p
|
||||
0hlXS7nz0I4xAxxRLfydwJptndjZgeiq9o1XMRA0JUZQhzuk2VYQ6MSVhwARAQAB
|
||||
tB9CcnlhbiBSYW1vcyA8YnJ5YW5AcmFtb3MuY29kZXM+iQJOBBMBCgA4FiEE8fNG
|
||||
ZFhFKy3zUfHoZNErqVrOHy0FAmP0BgMCGwEFCwkIBwIGFQoJCAsCBBYCAwECHgEC
|
||||
F4AACgkQZNErqVrOHy25SBAArl6JHrDm3fLXPhwtHf9WzxQvW6BmMgLQQ+bGGGba
|
||||
A3e+eKb0ibSmXH9M22GOSxKqk2BePtoLFdyDKDFNwYDwzj0ioQ80Q9YR6aoSuwOf
|
||||
HwXeiYsgK76IbsRciXSv6JgAsXO9UOGTlHlTgFsE3AMjnCgPrHbV3SZdkFt71XMo
|
||||
fbRmYwC33HK6QNUXeq4O+gGO5vJI8Wx1mtmy6kq/3srzMpCGybg9M8C5AQoazo/u
|
||||
WOjO57QkUdbAXO8HbHInexsstJJn+0o/FLfMoOy7v/cpzTLbbpONRzQbEq1/Utt1
|
||||
TaIc1FTWT1b4oWnIGv2stlCGzx9IgsseJocSBG+kGgkKwVBWIcCwq+cCdfkOReCk
|
||||
VHTg1oRH8t078346KuxEaA7ofKaByirQosZUeF5WTyMuJUDf1mNxxZngRKjIHD3c
|
||||
lmK8REnYjQ4b+RfznfV8qc8tH624EUTNlT123ufUIvba0fR8OryhdxPOOgdLjlNL
|
||||
XdkfG5oENnBy3EzGn7xgR6sCRtlFSEcfKQFcec1fjqYMHxPAExajmSHLwr5107LT
|
||||
4B+F5eOt9CBFKW/cxnVwG/3oW0mzLa231V0eYquiYkbYHVswLdhr02vyHpLXXVZk
|
||||
JgiLSXIJ6yKwLA9W8HgHgDYCp899Jl+wqhFLxr7oUjXcLhuZO9Q3P3req0SJRfUu
|
||||
GTO5Ag0EY/QGQAEQANsJBUpkk0ZW5swgzC/c7pxv4VGS8VZcr3Isol8NHAUUwHyo
|
||||
jqAYNtqW8PQLgQ34uuuC5GCS2hxN57WdgmSkv/to8THl6IbE1V/YVaaGXX9yiJmH
|
||||
72//kc9g2prXyrtObwVhgKiYQxPPegm9ubLkb1khCTLhozCJDM1wbQxmE5I2cICC
|
||||
5lwCi1NDsAyvUtWANzb0EXPZh2iPv8sWMh3RStAGSsboHzHYdR9RZGRjKG/ET5zv
|
||||
OBbFpRLFjvMJUL22M0V5FFPbuz+4Aut21wkYdueHtREpUgAcba68Doz75jQb0PEZ
|
||||
52hjLKuXVf0/1sEPXUs/sL8kyl6QzIqFIXsrjbw6BrGSdhn6YoY95koCb6AXUrFC
|
||||
oOXQC5BecTcP7V3GOWDEaDUbjN8mc2t1ujs7KYIqi0UCiHa9m5L2Q/9TyOSLyjSf
|
||||
0VKHzib7Ov76GvphbYoQSXWX8R6ogcexQH6aQlXI31ir/HsHkatImYomySZiwNVV
|
||||
5PQD/7lbWGjLB6LB9PsyVIVl3uq+sSX7xKeogZkEuTcerKVJjpknisKh6aR/uJRV
|
||||
KJs2U3MolyVanDb/y6VBJrCOu8ZiCZuDtCntUg8MxeLNFO0MVdgAPiHMtJd8YrzK
|
||||
bhbkHBufAgOLMbGTYq47bQNuRz/CjIz0xll0tLeS9LD1hcSWX/nMhFgfxDjxABEB
|
||||
AAGJBGwEGAEKACAWIQTx80ZkWEUrLfNR8ehk0SupWs4fLQUCY/QGQAIbAgJACRBk
|
||||
0SupWs4fLcF0IAQZAQoAHRYhBDgB5+1vnI0s1XHgHmq9zRRNZkPIBQJj9AZAAAoJ
|
||||
EGq9zRRNZkPIMbUQAJaDnJHMMXTNmANva65XjY2eJpoYBCIvd8FodRfFCbAPkNad
|
||||
MtsCgd2dXZPizTOUNqcOujACd7u3P/VazYT0cUgjx6mpWdvxYuGMCM71WLHKeCaq
|
||||
bXzzKrNaREMDTsMBn0wrIr5ZEuRsLOi4ZVZ5vFvtMQYnzjNT6gON+fHpaD6sShnR
|
||||
VWXWaYtQ2ttN2+6gwmKCaqiH2suA+QkI/gPjqdMOeXvu6sMUd5IjaCBJy3Ddyjif
|
||||
/ZYkJUjDkxG7aC4B2XtGUf0lPG+kiCHGjgTsvIeYYSpi/TyevTF8QNfZWcp/NBcf
|
||||
ZXhCoUoA62zzQ2SXpydZpryKn8klAYQLLA8mq6v/ljqcwFyLYtx0Cw49Thspo/4r
|
||||
ba1jzsv5QdBveIKdGjzcuexTaIEFB6rQXIFuVVfn074tpZIO+KmHO/z62i73bbko
|
||||
67tm+VDvbgsGUd4536lSKMekbdn0+5ODl76AJCD0M+Vzxkl9X/fg4zgz0vG2Ppiq
|
||||
08LqBPidA9EQ+tEHm7OIXk9Z+wApDCb27zwsiygkV9uWXuEaNYjCjUZTEw9CYTuH
|
||||
CdCPOdeJYBzKpfGXldJo6F6NbLLXywL4ej2Lt99tqFF2tQ3I6SKyYx+I2veYsjKs
|
||||
7g29bF4WuU1IVi4Kn144NUzEHOJZKeyYOwEz5+chq9KuYBY8b1OHe1Q5pEFIbVIP
|
||||
/1pdwhs6zV8tJZOgzLb9q+yLuXH1Fk4YE9wZDh/rK3hpD+KGyNRa+0J70wdYDOqk
|
||||
4C9ybAaljvJPXO622Ai/RlFLQVK4KdJ2Ig9mwtIhwBvjnKkCmG502HGRUa3HVpDK
|
||||
pb9WDrH9eJPxkRew1y7Kl6ua10mNh7vMIbEDzZY36Eovzc127ANy/EQR8OwnI8Vg
|
||||
39rCq1wDVeULHmF4j63cm3pHo6LK1OGZjAkg9XjT/aDpuqigcdEmFjmx7RSBPZFC
|
||||
RZTJ6kcafbnxQfKx7soI7+1AWVSrTt+/XePZPubnFeMlfXtGVXejTG2rCWJqRpGZ
|
||||
sjwgGiOtcnzvF37TQ4XrWV5T45XeSmG4hsF+zShXqevGulOwGNPtJbmiINTaeKun
|
||||
1KxjSVpwkniOQgrWNSFCD2RzSEuQRKSg0XMbgPLbmplVO4WAzhQ/Ry4DpNqjJwkp
|
||||
2z5WQ8XhfsxecNBc10pbPGyDUbXk96bZSXc31s5tKIyUaCxMmUu87Z0q9KEaVrGc
|
||||
Tp69o4LIX8dhEqAx8Mk1AKpk8TsT0Ebc75X+xbzVoiimblUuB/+OrDsK7R0hihIe
|
||||
TU+1xOJ1gyppkuacOuHioV4k9k4NUwgk+YrSKTrhFEzbM6gcOngTB0VTFzQlEjxB
|
||||
wxl2qN7f0lFD6F0rLJ0Rm06xIwTNIe/0MfMXAJBB45DFuQINBGP0BlIBEADAkdgW
|
||||
M8SyGyde5Op/B9yMHNPfuSNRjK4/HHmLez1GTriNwuqor5FRrDCO8VPUbQX/x06O
|
||||
2HZj8fJWa+6hc9+giUTXNbYtlMVpZOUVhGxzuy2Y6YE82maBaJ3EB/KBP7zdgvKT
|
||||
bxmjv5hre9u/LaY6tloCzeaBUWPV9+e5Bxq72qC507V/z6lc+PgxWWfGkmWBuT+v
|
||||
laHWFb6ZM5ldtcMSdscrLBcxLMnjNIRlIaWpj+tvuInMdV3HrTn/bdHCP/Ybrf95
|
||||
DYY+7p+KPGrdXJH121f8qZXRihTJerJOGvGbue6FIJ+wYSEr3nb9bNyym/w+Mk9Z
|
||||
0wJZZVfjbqFNcGhTttZWlzdTJwerwj7cGsTtMcuIphhUdLhQns+dBTVKVrqvvHSu
|
||||
p/w9IpnyDhcgqv8v23xfSCuKooWPn2E1/Pd4enLCHVzmFW1xQDtDunRuxBbHYpM4
|
||||
5gknVdIp8bY23y1fj0mottIfgZZEfiMR6FJxseFcWuG7VdC7VITdgbNl5YDXw4ts
|
||||
xmg2qrRSNUTkFAKNwIekqwziay4DcnWkoikH+n3bHre5wQqFzHIV03Zo8YcgKvyT
|
||||
0hwAvn2wGRoIynInFMi2/314xbAUBq10QhREGOPS3oUvBUZxhTkiBMKVYyKA97JQ
|
||||
c2Xhrkx9cuZxh3y7j3DflRBW9XLJvbcLGDziTwARAQABiQI2BBgBCgAgFiEE8fNG
|
||||
ZFhFKy3zUfHoZNErqVrOHy0FAmP0BlICGwwACgkQZNErqVrOHy0dOxAAlNRb0yBq
|
||||
SLLU/pQHjnqRQsLpXFmokcAVfZcEoODTMmzPf3uKDExkHBsyRjbRrEazMLQZIwIb
|
||||
78AXvPx6W+lwkmrZ1IXfTkURMi2RmSSOcjTJzipM4WKkOy6zSg29chnBz8edq8AF
|
||||
rErYdY5IgGCn3RHtkGjtKRSV0m4cdoO/wqGHtZdxEhmfmAzs+Wwevqb1nzptG3my
|
||||
ZdEJ5rkgGcnvUjkJo815FjR1fuo0KSuVZVelvWMp6JFYMWc4FUh2bYWymIQ6u8/f
|
||||
2v8EnacG/oNHDkZG0edTPU4dClHCtXqejAxazHYUojJkFdWUMoEIJ7VYg23N4WAW
|
||||
0qf78uBOuGBjl8g5sOmu/IQpMsO51NiDSw/lGLfPsKJKTIe7N6Jxs8PT66Jqvw2U
|
||||
4moKEAcoLGxXkIfY7UMFGflaADzBQEebNiekRMw/SAxB3mRptuQ96QuCrpLE7kmI
|
||||
KPs0vk3om0Lz59q3JoYmMEoEIMM3Z1j94mp07nyJzKvOREtQYY7WIKG/sgUHekjm
|
||||
lrUfez8xHCG4G0r4KTiu3rGT/rvCehTxvkl4Gmimeo+XNb7vwcr1O0/DTH3ZCG8o
|
||||
+mwGnah7T6ch60YFSWm0RkxNozNHWJf5Ee6gVv7nEyB1pbuqhXHliv3hhK+/4SWW
|
||||
RMwhK4b5axJn9aHTu3rwDdaDpUkkApY4rhq5Ag0EY/QGZAEQAOXjz3loH0/mn+Wn
|
||||
wermse6fhyW+HJNIcWLdTZ3o44GhbkWb5VxCdb/FuOYIGxeTkF2KjCwHFCHCfN1/
|
||||
P8okvsnlGhuiZQRpVHBv1TBPzx4m94unXgEbyPYndKN/KGsJf7iOQ/HRs9CTUcZy
|
||||
5hj608Rd/Wr+mzzwOG7QIBEEjNhA5NhjpvWpbPGkOgVkYeMobyDmJjoUi7rnIoq+
|
||||
9XLV/wiBneXcinAFZVqbGCRNxhjRBhKubOjWftNfHCtZu96cCoGxDRwE+z6BVre4
|
||||
iv7VMmXQDPlISUFUa7cu9R2WTny2u09SPpNBHdhSSDtWOWXtYc52qG7HllA2GOQ6
|
||||
wd6t/RPDzp7pwTOB5O4htAchvQtyxS6fApy6Hb5q7tE7n31y8efT7FkTkxkHGWgM
|
||||
NoncmyKWIzyTI8/9TcRGPTdxYtbsGptP6x+MA6XbVELOTSJDGTXC3/xWa0Kv0B2/
|
||||
sjKu1pi9/9vBE/6D72V2bMoa3wx1vrTm5XNnvQf8subXt/jRN75Adp7HlvL/qnpy
|
||||
7AQRm2AiDndamCW7SsDpTGsF9AQcqX8m3cUt4TSacTJiSRHYycc23JZEhe26phkw
|
||||
CbZRvWkUcfuNBXWAaINVPDprZ4jArbVr+Fe1GMVSkV3WcHWf4o18kETjNPfCbdR3
|
||||
uYrD/qtaehHKFhm8ZeQV2n6ISzj1ABEBAAGJAjYEGAEKACAWIQTx80ZkWEUrLfNR
|
||||
8ehk0SupWs4fLQUCY/QGZAIbIAAKCRBk0SupWs4fLcubD/oDGub4+uep50VBUa0u
|
||||
BZAUu/oS664+53sZyvogMzeIT32DT3vDaa3W2aqUNX/dZVzOcsV07HO4yk6+kiSk
|
||||
1Db2FbRFODbFcs5mBYo/EFSxExhQMQFqgXaW3FrpvL5ljAwsjdoSN93DnMkLnC9K
|
||||
XZUyUT+RDcJnk0xS+0ex77nc8vp13n2huHuXU6BbEGofrT9br7Kyezh84GV9nxls
|
||||
C0PwTX0gBaesqeY/9rtAXq+p+kYBafbny/3zrL8CBwqHqRZWiNbkyGWx9WHvizZE
|
||||
0VJJzGl0CTP7aE/N42t+LDGuaA76SJXkkqGs7GmJ3EHVA8N/2Lwhf0saaG3cBrKx
|
||||
lXrJoSY7TxeoJ7rdt/KRJfKsU0bdXgVXDFrlf4ZvctCLZmQ0nno2cgYemTnELRYv
|
||||
FzrS2itqqWP1ev2iPpCbKp099i/w6D13C3jBVAVYPBapD6aaD7YHWLhHIA5zH7bF
|
||||
n8IgacgKBoJ8u3jo3eeT5CXfsrnwOYdrqposfMCUOriJHx41nGUqjNZDG2ByHxgS
|
||||
mnUd3lrjRDWTUzXj8pRN2K7Uqbbs2Mz4Q64MgbCkkTichMlVux8kH+O/I/veAYto
|
||||
OEpwdDwa67AtzYKG0ssOJI+po9TlbKYS4O4H8XnPhYSOEw8eObNPYCX7jyAjXloo
|
||||
1hbflYLyMYo1BxGR6bPS9gJA2w==
|
||||
=5uun
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
programs.ssh.enable = true;
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
111
homeConfig/modules/gpg/config/pubKey.nix
Normal file
111
homeConfig/modules/gpg/config/pubKey.nix
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
''
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
1hbflYLyMYo1BxGR6bPS9gJA2w==
|
||||
=5uun
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
''
|
||||
23
homeConfig/modules/gpg/default.nix
Normal file
23
homeConfig/modules/gpg/default.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let cfg = config.modules.gpg;
|
||||
|
||||
in
|
||||
{ options.modules.gpg = { enable = mkEnableOption "gpg"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
publicKeys."bryan@ramos.codes" = {
|
||||
trust = 5;
|
||||
text = import ./config/pubKey.nix;
|
||||
};
|
||||
};
|
||||
|
||||
programs.ssh.enable = true;
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
enableSshSupport = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,273 +0,0 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let cfg = config.modules.gui;
|
||||
modifier = config.wayland.windowManager.sway.config.modifier;
|
||||
|
||||
in {
|
||||
options.modules.gui = { enable = mkEnableOption "gui"; };
|
||||
config = mkIf cfg.enable {
|
||||
wayland.windowManager.sway = {
|
||||
enable = true;
|
||||
xwayland = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
config = {
|
||||
modifier = "Mod1";
|
||||
menu = "\${pkgs.rofi-wayland}/bin/rofi -show drun -show-icons -drun-icon-theme Qogir -font 'Noto Sans 14'";
|
||||
terminal = "\${pkgs.alacritty}/bin/alacritty";
|
||||
startup = [{ command = "exec { exec alacritty -e sh -c 'neofetch; exec $SHELL'"; always = true; }];
|
||||
|
||||
input = {
|
||||
keyboard = {
|
||||
xkb_numlock = "enabled";
|
||||
xkb_layout = "us";
|
||||
};
|
||||
pointer = {
|
||||
accel_profile = "flat";
|
||||
pointer_accel = "0.65";
|
||||
};
|
||||
};
|
||||
|
||||
bars.sway-bar = {
|
||||
position = "top";
|
||||
statusCommand = ''while :; do echo "$(free -h | awk '/^Mem/ {print $3}') '|' $(date +'%I:%M:%S %p') '|' $(date +'%m-%d-%Y')"; sleep 1; done'';
|
||||
fonts = {
|
||||
names = [ "Noto Sans" "Noto Emoji" "Noto Color Emoji" ];
|
||||
size = 10.0;
|
||||
};
|
||||
colors.background = "#0A0E14";
|
||||
colors.statusline = "#FFFFFF";
|
||||
};
|
||||
|
||||
gaps = {
|
||||
smartGaps = false;
|
||||
inner = 10;
|
||||
};
|
||||
|
||||
floating.border = 0;
|
||||
window.border= 0;
|
||||
|
||||
keybindings = lib.mkOptionDefault {
|
||||
"${modifier}+q" = "kill";
|
||||
"Print" = "exec grim ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png";
|
||||
"Shift+Print" = "exec grim -g '$(slurp)'' ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png";
|
||||
"${modifier}+Print" = ''exec sh -c 'grim -g "$(swaymsg -t get_tree | jq -j '"'"'.. | select(.type?) | select(.focused).rect | "\(.x),\(.y) \(.width)x\(.height)"'"'"')" ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png' '';
|
||||
"${modifier}+Shift+f" = "exec alacritty -e ranger";
|
||||
"${modifier}+Shift+d" = "exec emote";
|
||||
};
|
||||
|
||||
extraOptions = [
|
||||
"--unsupported-gpu"
|
||||
"--my-next-gpu-wont-be-nvidia"
|
||||
];
|
||||
|
||||
extraSessionCommands = ''
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme.package = pkgs.juno-theme;
|
||||
theme.name = "Juno-ocean";
|
||||
iconTheme.package = pkgs.qogir-icon-theme;
|
||||
iconTheme.name = "Qogir";
|
||||
};
|
||||
|
||||
programs.btop.enable = true;
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
location = "center";
|
||||
terminal = "\${pkgs.alacritty}/bin/alacritty";
|
||||
|
||||
theme = {
|
||||
"*" = {
|
||||
nord0 = mkLiteral "#2e3440";
|
||||
nord1 = mkLiteral "#3b4252";
|
||||
nord2 = mkLiteral "#434c5e";
|
||||
nord3 = mkLiteral "#4c566a";
|
||||
nord4 = mkLiteral "#d8dee9";
|
||||
nord5 = mkLiteral "#e5e9f0";
|
||||
nord6 = mkLiteral "#eceff4";
|
||||
nord7 = mkLiteral "#8fbcbb";
|
||||
nord8 = mkLiteral "#88c0d0";
|
||||
nord9 = mkLiteral "#81a1c1";
|
||||
nord10 = mkLiteral "#5e81ac";
|
||||
nord11 = mkLiteral "#bf616a";
|
||||
nord12 = mkLiteral "#d08770";
|
||||
nord13 = mkLiteral "#ebcb8b";
|
||||
nord14 = mkLiteral "#a3be8c";
|
||||
nord15 = mkLiteral "#b48ead";
|
||||
spacing = 2;
|
||||
background-color = mkLiteral "var(nord1)";
|
||||
background = mkLiteral "var(nord1)";
|
||||
foreground = mkLiteral "var(nord4)";
|
||||
normal-background = mkLiteral "var(background)";
|
||||
normal-foreground = mkLiteral "var(foreground)";
|
||||
alternate-normal-background = mkLiteral "var(background)";
|
||||
alternate-normal-foreground = mkLiteral "var(foreground)";
|
||||
selected-normal-background = mkLiteral "var(nord8)";
|
||||
selected-normal-foreground = mkLiteral "var(background)";
|
||||
active-background = mkLiteral "var(background)";
|
||||
active-foreground = mkLiteral "var(nord10)";
|
||||
alternate-active-background = mkLiteral "var(background)";
|
||||
alternate-active-foreground = mkLiteral "var(nord10)";
|
||||
selected-active-background = mkLiteral "var(nord10)";
|
||||
selected-active-foreground = mkLiteral "var(background)";
|
||||
urgent-background = mkLiteral "var(background)";
|
||||
urgent-foreground = mkLiteral "var(nord11)";
|
||||
alternate-urgent-background = mkLiteral "var(background)";
|
||||
alternate-urgent-foreground = mkLiteral "var(nord11)";
|
||||
selected-urgent-background = mkLiteral "var(nord11)";
|
||||
selected-urgent-foreground = mkLiteral "var(background)";
|
||||
};
|
||||
|
||||
element = {
|
||||
padding = mkLiteral "0px 0px 0px 7px";
|
||||
spacing = mkLiteral "5px";
|
||||
border = 0;
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
|
||||
"element normal.normal" = {
|
||||
background-color = mkLiteral "var(normal-background)";
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
};
|
||||
|
||||
"element normal.urgent" = {
|
||||
background-color = mkLiteral "var(urgent-background)";
|
||||
text-color = mkLiteral "var(urgent-foreground)";
|
||||
};
|
||||
|
||||
"element normal.active" = {
|
||||
background-color = mkLiteral "var(active-background)";
|
||||
text-color = mkLiteral "var(active-foreground)";
|
||||
};
|
||||
|
||||
"element selected.normal" = {
|
||||
background-color = mkLiteral "var(selected-normal-background)";
|
||||
text-color = mkLiteral "var(selected-normal-foreground)";
|
||||
};
|
||||
|
||||
"element selected.urgent" = {
|
||||
background-color = mkLiteral "var(selected-urgent-background)";
|
||||
text-color = mkLiteral "var(selected-urgent-foreground)";
|
||||
};
|
||||
|
||||
"element selected.active" = {
|
||||
background-color = mkLiteral "var(selected-active-background)";
|
||||
text-color = mkLiteral "var(selected-active-foreground)";
|
||||
};
|
||||
|
||||
"element alternate.normal" = {
|
||||
background-color = mkLiteral "var(alternate-normal-background)";
|
||||
text-color = mkLiteral "var(alternate-normal-foreground)";
|
||||
};
|
||||
|
||||
"element alternate.urgent" = {
|
||||
background-color = mkLiteral "var(alternate-urgent-background)";
|
||||
text-color = mkLiteral "var(alternate-urgent-foreground)";
|
||||
};
|
||||
|
||||
"element alternate.active" = {
|
||||
background-color = mkLiteral "var(alternate-active-background)";
|
||||
text-color = mkLiteral "var(alternate-active-foreground)";
|
||||
};
|
||||
|
||||
"element-text" = {
|
||||
background-color = mkLiteral "rgba(0, 0, 0, 0%)";
|
||||
text-color = mkLiteral "inherit";
|
||||
highlight = mkLiteral "inherit";
|
||||
cursor = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"element-icon" = {
|
||||
background-color = mkLiteral "rgba(0, 0, 0, 0%)";
|
||||
size = mkLiteral "1.0000em";
|
||||
text-color = mkLiteral "inherit";
|
||||
cursor = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
window = {
|
||||
padding = 0;
|
||||
border = 0;
|
||||
background-color = mkLiteral "var(background)";
|
||||
};
|
||||
|
||||
mainbox = {
|
||||
padding = 0;
|
||||
border = 0;
|
||||
};
|
||||
|
||||
message = {
|
||||
margin = mkLiteral "0px 7px";
|
||||
};
|
||||
|
||||
textbox = {
|
||||
text-color = mkLiteral "var(foreground)";
|
||||
};
|
||||
|
||||
listview = {
|
||||
margin = mkLiteral "0px 0px 5px";
|
||||
scrollbar = true;
|
||||
spacing = mkLiteral "2px";
|
||||
fixed-height = 0;
|
||||
};
|
||||
|
||||
scrollbar = {
|
||||
padding = 0;
|
||||
handle-width = mkLiteral "14px";
|
||||
border = 0;
|
||||
handle-color = mkLiteral "var(nord3)";
|
||||
};
|
||||
|
||||
button = {
|
||||
spacing = 0;
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
|
||||
"button selected" = {
|
||||
background-color = mkLiteral "var(selected-normal-background)";
|
||||
text-color = mkLiteral "var(selected-normal-foreground)";
|
||||
};
|
||||
|
||||
inputbar = {
|
||||
padding = mkLiteral "7px";
|
||||
margin = mkLiteral "7px";
|
||||
spacing = 0;
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
background-color = mkLiteral "var(nord3)";
|
||||
children = [ "entry" ];
|
||||
};
|
||||
|
||||
entry = {
|
||||
spacing = 0;
|
||||
cursor = mkLiteral "text";
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
background-color = mkLiteral "var(nord3)";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = [
|
||||
xdg-utils
|
||||
grim
|
||||
slurp
|
||||
|
||||
imv
|
||||
gimp
|
||||
evince
|
||||
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
|
||||
emote
|
||||
emojione
|
||||
];
|
||||
};
|
||||
}
|
||||
177
homeConfig/modules/gui/config/rofi.nix
Normal file
177
homeConfig/modules/gui/config/rofi.nix
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
{ enable = true;
|
||||
package = pkgs.rofi-wayland;
|
||||
location = "center";
|
||||
terminal = "\${pkgs.alacritty}/bin/alacritty";
|
||||
|
||||
theme = {
|
||||
"*" = {
|
||||
nord0 = mkLiteral "#2e3440";
|
||||
nord1 = mkLiteral "#3b4252";
|
||||
nord2 = mkLiteral "#434c5e";
|
||||
nord3 = mkLiteral "#4c566a";
|
||||
nord4 = mkLiteral "#d8dee9";
|
||||
nord5 = mkLiteral "#e5e9f0";
|
||||
nord6 = mkLiteral "#eceff4";
|
||||
nord7 = mkLiteral "#8fbcbb";
|
||||
nord8 = mkLiteral "#88c0d0";
|
||||
nord9 = mkLiteral "#81a1c1";
|
||||
nord10 = mkLiteral "#5e81ac";
|
||||
nord11 = mkLiteral "#bf616a";
|
||||
nord12 = mkLiteral "#d08770";
|
||||
nord13 = mkLiteral "#ebcb8b";
|
||||
nord14 = mkLiteral "#a3be8c";
|
||||
nord15 = mkLiteral "#b48ead";
|
||||
spacing = 2;
|
||||
background-color = mkLiteral "var(nord1)";
|
||||
background = mkLiteral "var(nord1)";
|
||||
foreground = mkLiteral "var(nord4)";
|
||||
normal-background = mkLiteral "var(background)";
|
||||
normal-foreground = mkLiteral "var(foreground)";
|
||||
alternate-normal-background = mkLiteral "var(background)";
|
||||
alternate-normal-foreground = mkLiteral "var(foreground)";
|
||||
selected-normal-background = mkLiteral "var(nord8)";
|
||||
selected-normal-foreground = mkLiteral "var(background)";
|
||||
active-background = mkLiteral "var(background)";
|
||||
active-foreground = mkLiteral "var(nord10)";
|
||||
alternate-active-background = mkLiteral "var(background)";
|
||||
alternate-active-foreground = mkLiteral "var(nord10)";
|
||||
selected-active-background = mkLiteral "var(nord10)";
|
||||
selected-active-foreground = mkLiteral "var(background)";
|
||||
urgent-background = mkLiteral "var(background)";
|
||||
urgent-foreground = mkLiteral "var(nord11)";
|
||||
alternate-urgent-background = mkLiteral "var(background)";
|
||||
alternate-urgent-foreground = mkLiteral "var(nord11)";
|
||||
selected-urgent-background = mkLiteral "var(nord11)";
|
||||
selected-urgent-foreground = mkLiteral "var(background)";
|
||||
};
|
||||
|
||||
element = {
|
||||
padding = mkLiteral "0px 0px 0px 7px";
|
||||
spacing = mkLiteral "5px";
|
||||
border = 0;
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
|
||||
"element normal.normal" = {
|
||||
background-color = mkLiteral "var(normal-background)";
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
};
|
||||
|
||||
"element normal.urgent" = {
|
||||
background-color = mkLiteral "var(urgent-background)";
|
||||
text-color = mkLiteral "var(urgent-foreground)";
|
||||
};
|
||||
|
||||
"element normal.active" = {
|
||||
background-color = mkLiteral "var(active-background)";
|
||||
text-color = mkLiteral "var(active-foreground)";
|
||||
};
|
||||
|
||||
"element selected.normal" = {
|
||||
background-color = mkLiteral "var(selected-normal-background)";
|
||||
text-color = mkLiteral "var(selected-normal-foreground)";
|
||||
};
|
||||
|
||||
"element selected.urgent" = {
|
||||
background-color = mkLiteral "var(selected-urgent-background)";
|
||||
text-color = mkLiteral "var(selected-urgent-foreground)";
|
||||
};
|
||||
|
||||
"element selected.active" = {
|
||||
background-color = mkLiteral "var(selected-active-background)";
|
||||
text-color = mkLiteral "var(selected-active-foreground)";
|
||||
};
|
||||
|
||||
"element alternate.normal" = {
|
||||
background-color = mkLiteral "var(alternate-normal-background)";
|
||||
text-color = mkLiteral "var(alternate-normal-foreground)";
|
||||
};
|
||||
|
||||
"element alternate.urgent" = {
|
||||
background-color = mkLiteral "var(alternate-urgent-background)";
|
||||
text-color = mkLiteral "var(alternate-urgent-foreground)";
|
||||
};
|
||||
|
||||
"element alternate.active" = {
|
||||
background-color = mkLiteral "var(alternate-active-background)";
|
||||
text-color = mkLiteral "var(alternate-active-foreground)";
|
||||
};
|
||||
|
||||
"element-text" = {
|
||||
background-color = mkLiteral "rgba(0, 0, 0, 0%)";
|
||||
text-color = mkLiteral "inherit";
|
||||
highlight = mkLiteral "inherit";
|
||||
cursor = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
"element-icon" = {
|
||||
background-color = mkLiteral "rgba(0, 0, 0, 0%)";
|
||||
size = mkLiteral "1.0000em";
|
||||
text-color = mkLiteral "inherit";
|
||||
cursor = mkLiteral "inherit";
|
||||
};
|
||||
|
||||
window = {
|
||||
padding = 0;
|
||||
border = 0;
|
||||
background-color = mkLiteral "var(background)";
|
||||
};
|
||||
|
||||
mainbox = {
|
||||
padding = 0;
|
||||
border = 0;
|
||||
};
|
||||
|
||||
message = {
|
||||
margin = mkLiteral "0px 7px";
|
||||
};
|
||||
|
||||
textbox = {
|
||||
text-color = mkLiteral "var(foreground)";
|
||||
};
|
||||
|
||||
listview = {
|
||||
margin = mkLiteral "0px 0px 5px";
|
||||
scrollbar = true;
|
||||
spacing = mkLiteral "2px";
|
||||
fixed-height = 0;
|
||||
};
|
||||
|
||||
scrollbar = {
|
||||
padding = 0;
|
||||
handle-width = mkLiteral "14px";
|
||||
border = 0;
|
||||
handle-color = mkLiteral "var(nord3)";
|
||||
};
|
||||
|
||||
button = {
|
||||
spacing = 0;
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
cursor = mkLiteral "pointer";
|
||||
};
|
||||
|
||||
"button selected" = {
|
||||
background-color = mkLiteral "var(selected-normal-background)";
|
||||
text-color = mkLiteral "var(selected-normal-foreground)";
|
||||
};
|
||||
|
||||
inputbar = {
|
||||
padding = mkLiteral "7px";
|
||||
margin = mkLiteral "7px";
|
||||
spacing = 0;
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
background-color = mkLiteral "var(nord3)";
|
||||
children = [ "entry" ];
|
||||
};
|
||||
|
||||
entry = {
|
||||
spacing = 0;
|
||||
cursor = mkLiteral "text";
|
||||
text-color = mkLiteral "var(normal-foreground)";
|
||||
background-color = mkLiteral "var(nord3)";
|
||||
};
|
||||
};
|
||||
}
|
||||
64
homeConfig/modules/gui/config/sway.nix
Normal file
64
homeConfig/modules/gui/config/sway.nix
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
modifier = config.wayland.windowManager.sway.config.modifier;
|
||||
|
||||
in
|
||||
{ enable = true;
|
||||
xwayland = true;
|
||||
wrapperFeatures.gtk = true;
|
||||
config = {
|
||||
modifier = "Mod1";
|
||||
menu = "\${pkgs.rofi-wayland}/bin/rofi -show drun -show-icons -drun-icon-theme Qogir -font 'Noto Sans 14'";
|
||||
terminal = "\${pkgs.alacritty}/bin/alacritty";
|
||||
startup = [{ command = "exec { exec alacritty -e sh -c 'neofetch; exec $SHELL'"; always = true; }];
|
||||
|
||||
input = {
|
||||
keyboard = {
|
||||
xkb_numlock = "enabled";
|
||||
xkb_layout = "us";
|
||||
};
|
||||
pointer = {
|
||||
accel_profile = "flat";
|
||||
pointer_accel = "0.65";
|
||||
};
|
||||
};
|
||||
|
||||
bars.sway-bar = {
|
||||
position = "top";
|
||||
statusCommand = ''while :; do echo "$(free -h | awk '/^Mem/ {print $3}') '|' $(date +'%I:%M:%S %p') '|' $(date +'%m-%d-%Y')"; sleep 1; done'';
|
||||
fonts = {
|
||||
names = [ "Noto Sans" "Noto Emoji" "Noto Color Emoji" ];
|
||||
size = 10.0;
|
||||
};
|
||||
colors.background = "#0A0E14";
|
||||
colors.statusline = "#FFFFFF";
|
||||
};
|
||||
|
||||
gaps = {
|
||||
smartGaps = false;
|
||||
inner = 10;
|
||||
};
|
||||
|
||||
floating.border = 0;
|
||||
window.border= 0;
|
||||
|
||||
keybindings = lib.mkOptionDefault {
|
||||
"${modifier}+q" = "kill";
|
||||
"Print" = "exec grim ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png";
|
||||
"Shift+Print" = "exec grim -g '$(slurp)'' ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png";
|
||||
"${modifier}+Print" = ''exec sh -c 'grim -g "$(swaymsg -t get_tree | jq -j '"'"'.. | select(.type?) | select(.focused).rect | "\(.x),\(.y) \(.width)x\(.height)"'"'"')" ~/Pictures/screenshot-$(date +'%Y%m%d-%H%M%S').png' '';
|
||||
"${modifier}+Shift+f" = "exec alacritty -e ranger";
|
||||
"${modifier}+Shift+d" = "exec emote";
|
||||
};
|
||||
|
||||
extraOptions = [
|
||||
"--unsupported-gpu"
|
||||
"--my-next-gpu-wont-be-nvidia"
|
||||
];
|
||||
|
||||
extraSessionCommands = ''
|
||||
export _JAVA_AWT_WM_NONREPARENTING=1
|
||||
'';
|
||||
};
|
||||
}
|
||||
40
homeConfig/modules/gui/default.nix
Normal file
40
homeConfig/modules/gui/default.nix
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.gui;
|
||||
|
||||
in
|
||||
{ options.modules.gui = { enable = mkEnableOption "gui"; };
|
||||
config = mkIf cfg.enable {
|
||||
wayland.windowmanager.sway = import ./config/sway.nix { inherit pkgs; };
|
||||
programs.rofi = import ./config/rofi.nix { inherit pkgs; };
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme.package = pkgs.juno-theme;
|
||||
theme.name = "Juno-ocean";
|
||||
iconTheme.package = pkgs.qogir-icon-theme;
|
||||
iconTheme.name = "Qogir";
|
||||
};
|
||||
|
||||
programs.btop.enable = true;
|
||||
fonts.fontconfig.enable = true;
|
||||
|
||||
home.packages = [
|
||||
xdg-utils
|
||||
grim
|
||||
slurp
|
||||
|
||||
imv
|
||||
gimp
|
||||
evince
|
||||
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
|
||||
emote
|
||||
emojione
|
||||
];
|
||||
};
|
||||
}
|
||||
111
homeConfig/modules/neovim/config/config.nix
Normal file
111
homeConfig/modules/neovim/config/config.nix
Normal file
|
|
@ -0,0 +1,111 @@
|
|||
# Already read as a lua file
|
||||
''
|
||||
require("config.lazy")
|
||||
|
||||
local lsp = require("lsp-zero").preset({})
|
||||
|
||||
lsp.on_attach(function(client, bufnr)
|
||||
lsp.default_keymaps({ buffer = bufnr })
|
||||
end)
|
||||
|
||||
lsp.setup_servers({
|
||||
"tsserver",
|
||||
"eslint",
|
||||
"hls",
|
||||
"pyright",
|
||||
"nil_ls",
|
||||
"cssls",
|
||||
"html",
|
||||
"jsonls",
|
||||
"diagnosticls",
|
||||
"lua_ls",
|
||||
"marksman",
|
||||
"purescriptls",
|
||||
"tailwindcss",
|
||||
"bashls",
|
||||
})
|
||||
|
||||
require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())
|
||||
|
||||
lsp.setup()
|
||||
|
||||
local cmp = require("cmp")
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
sources = {
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
},
|
||||
})
|
||||
|
||||
local has_words_before = function()
|
||||
unpack = unpack or table.unpack
|
||||
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
|
||||
|
||||
local luasnip = require("luasnip")
|
||||
|
||||
cmp.setup({
|
||||
enabled = function()
|
||||
-- disable completion in comments
|
||||
local context = require("cmp.config.context")
|
||||
-- keep command mode completion enabled when cursor is in a comment
|
||||
if vim.api.nvim_get_mode().mode == "c" then
|
||||
return true
|
||||
else
|
||||
return not context.in_treesitter_capture("comment") and not context.in_syntax_group("Comment")
|
||||
end
|
||||
end,
|
||||
mapping = {
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
|
||||
-- they way you will only jump inside the snippet region
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
["<CR>"] = cmp.mapping({
|
||||
i = function(fallback)
|
||||
if cmp.visible() and cmp.get_active_entry() then
|
||||
cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false })
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end,
|
||||
s = cmp.mapping.confirm({ select = true }),
|
||||
c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }),
|
||||
}),
|
||||
},
|
||||
})
|
||||
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||
-- Disable virtual_text
|
||||
virtual_text = false,
|
||||
})
|
||||
|
||||
require("notify").setup({
|
||||
background_colour = "#000000",
|
||||
})
|
||||
''
|
||||
17
homeConfig/modules/neovim/config/init.nix
Normal file
17
homeConfig/modules/neovim/config/init.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
''
|
||||
lua << EOF
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.expandtab = true
|
||||
|
||||
vim.o.guicursor = \'\'
|
||||
vim.o.clipboard = "unnamedplus"
|
||||
|
||||
vim.o.foldmethod = "indent"
|
||||
vim.o.foldlevelstart = 99
|
||||
|
||||
vim.cmd([[
|
||||
au BufRead,BufNewFile *.purs set filetype=purescript
|
||||
]])
|
||||
EOF
|
||||
''
|
||||
25
homeConfig/modules/neovim/config/lsp.nix
Normal file
25
homeConfig/modules/neovim/config/lsp.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
lsp = with pkgs; [
|
||||
nil
|
||||
nixfmt
|
||||
marksman
|
||||
sumneko-lua-language-server
|
||||
stylua
|
||||
haskell-language-server
|
||||
hlint
|
||||
];
|
||||
|
||||
lsp' = with pkgs.nodePackages; [
|
||||
vscode-langservers-extracted
|
||||
typescript-language-server
|
||||
eslint
|
||||
bash-language-server
|
||||
diagnostic-languageserver
|
||||
pyright
|
||||
purescript-language-server
|
||||
];
|
||||
|
||||
in
|
||||
lsp ++ lsp'
|
||||
68
homeConfig/modules/neovim/config/plugins.nix
Normal file
68
homeConfig/modules/neovim/config/plugins.nix
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
github-theme = pkgs.vimUtils.buildVimPlugin {
|
||||
name = "github-theme";
|
||||
src = pkgs.fetchFromGithub {
|
||||
owner = "projekt0n";
|
||||
repo = "github-nvim-theme";
|
||||
rev = "ea713c37691b2519f56cd801a2330bdf66393d0f";
|
||||
sha256 = "0cwr3b5r2ac7aizxmwb3mlhdc2sh0pw670vcwps79x9jp52yrj2y";
|
||||
};
|
||||
};
|
||||
|
||||
in
|
||||
with pkgs.vimPlugins;
|
||||
[
|
||||
{
|
||||
plugin = github-theme;
|
||||
config = ''
|
||||
lua << EOF
|
||||
vim.cmd('colorscheme github_dark_high_contrast')
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
|
||||
{ plugin = lazygit.nvim; }
|
||||
|
||||
{
|
||||
plugin = LazyVim;
|
||||
config = ''
|
||||
lua << EOF
|
||||
return {
|
||||
{'williamboman/mason.nvim', enabled = false },
|
||||
{'williamboman/mason-lspconfig.nvim', enabled = false },
|
||||
{'nvim-treesitter/nvim-treesitter', enabled = false },
|
||||
}
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
plugin = lsp-zero-nvim;
|
||||
config = ''
|
||||
lua << EOF
|
||||
branch = 'v2.x'
|
||||
requires = {
|
||||
{'neovim/nvim-lspconfig'},
|
||||
{'hrsh7th/nvim-cmp'},
|
||||
{'hrsh7th/cmp-nvim-lsp'},
|
||||
{'L3MON4D3/LuaSnip'},
|
||||
}
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
plugin = nvim-treesitter.withAllGrammars;
|
||||
config = ''
|
||||
lua << EOF
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
}
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
]
|
||||
21
homeConfig/modules/neovim/default.nix
Normal file
21
homeConfig/modules/neovim/default.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.neovim;
|
||||
|
||||
in
|
||||
{ options.modules.neovim = { enable = mkEnableOption "neovim"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
extraLuaConfig = import ./config/init.nix;
|
||||
generatedConfigs.lua = import ./config/config.nix;
|
||||
plugins = import ./config/plugins.nix { inherit pkgs; };
|
||||
extraPackages = import ./config/lsp.nix { inherit pkgs; };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,220 +0,0 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.neovim;
|
||||
|
||||
github-theme = pkgs.vimUtils.buildVimPlugin {
|
||||
name = "github-theme";
|
||||
src = pkgs.fetchFromGithub {
|
||||
owner = "projekt0n";
|
||||
repo = "github-nvim-theme";
|
||||
rev = "ea713c37691b2519f56cd801a2330bdf66393d0f";
|
||||
sha256 = "0cwr3b5r2ac7aizxmwb3mlhdc2sh0pw670vcwps79x9jp52yrj2y";
|
||||
};
|
||||
};
|
||||
|
||||
LSPs = with pkgs; [
|
||||
nil nixfmt marksman
|
||||
sumneko-lua-language-server stylua
|
||||
haskell-language-server hlint
|
||||
];
|
||||
|
||||
LSPs' = with pkgs.nodePackages; [
|
||||
vscode-langservers-extracted typescript-language-server eslint
|
||||
bash-language-server diagnostic-languageserver
|
||||
pyright purescript-language-server
|
||||
];
|
||||
|
||||
in
|
||||
{ options.modules.neovim = { enable = mkEnableOption "neovim"; };
|
||||
config = mkIf cfg.enable {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = github-theme;
|
||||
config = ''
|
||||
lua << EOF
|
||||
vim.cmd('colorscheme github_dark_high_contrast')
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
|
||||
{ plugin = lazygit.nvim; }
|
||||
|
||||
{
|
||||
plugin = LazyVim;
|
||||
config = ''
|
||||
lua << EOF
|
||||
return {
|
||||
{'williamboman/mason.nvim', enabled = false },
|
||||
{'williamboman/mason-lspconfig.nvim', enabled = false },
|
||||
{'nvim-treesitter/nvim-treesitter', enabled = false },
|
||||
}
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
plugin = lsp-zero-nvim;
|
||||
config = ''
|
||||
lua << EOF
|
||||
branch = 'v2.x'
|
||||
requires = {
|
||||
{'neovim/nvim-lspconfig'},
|
||||
{'hrsh7th/nvim-cmp'},
|
||||
{'hrsh7th/cmp-nvim-lsp'},
|
||||
{'L3MON4D3/LuaSnip'},
|
||||
}
|
||||
'';
|
||||
}
|
||||
|
||||
{
|
||||
plugin = nvim-treesitter.withAllGrammars;
|
||||
config = ''
|
||||
lua << EOF
|
||||
require'nvim-treesitter.configs'.setup {
|
||||
highlight = {
|
||||
enable = true,
|
||||
},
|
||||
}
|
||||
EOF
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
extraLuaConfig = ''
|
||||
lua << EOF
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.expandtab = true
|
||||
|
||||
vim.o.clipboard = "unnamedplus"
|
||||
EOF
|
||||
'';
|
||||
|
||||
generatedConfigs = {
|
||||
lua = ''
|
||||
require("config.lazy")
|
||||
|
||||
local lsp = require("lsp-zero").preset({})
|
||||
|
||||
lsp.on_attach(function(client, bufnr)
|
||||
lsp.default_keymaps({ buffer = bufnr })
|
||||
end)
|
||||
|
||||
lsp.setup_servers({
|
||||
"tsserver",
|
||||
"eslint",
|
||||
"hls",
|
||||
"pyright",
|
||||
"nil_ls",
|
||||
"cssls",
|
||||
"html",
|
||||
"jsonls",
|
||||
"diagnosticls",
|
||||
"lua_ls",
|
||||
"marksman",
|
||||
"purescriptls",
|
||||
"tailwindcss",
|
||||
"bashls",
|
||||
})
|
||||
|
||||
require("lspconfig").lua_ls.setup(lsp.nvim_lua_ls())
|
||||
|
||||
lsp.setup()
|
||||
|
||||
local cmp = require("cmp")
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
sources = {
|
||||
{ name = "nvim_lsp" },
|
||||
{ name = "luasnip" },
|
||||
},
|
||||
})
|
||||
|
||||
vim.cmd([[
|
||||
au BufRead,BufNewFile *.purs set filetype=purescript
|
||||
]])
|
||||
|
||||
local has_words_before = function()
|
||||
unpack = unpack or table.unpack
|
||||
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
|
||||
|
||||
local luasnip = require("luasnip")
|
||||
|
||||
cmp.setup({
|
||||
enabled = function()
|
||||
-- disable completion in comments
|
||||
local context = require("cmp.config.context")
|
||||
-- keep command mode completion enabled when cursor is in a comment
|
||||
if vim.api.nvim_get_mode().mode == "c" then
|
||||
return true
|
||||
else
|
||||
return not context.in_treesitter_capture("comment") and not context.in_syntax_group("Comment")
|
||||
end
|
||||
end,
|
||||
mapping = {
|
||||
["<Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_next_item()
|
||||
-- You could replace the expand_or_jumpable() calls with expand_or_locally_jumpable()
|
||||
-- they way you will only jump inside the snippet region
|
||||
elseif luasnip.expand_or_jumpable() then
|
||||
luasnip.expand_or_jump()
|
||||
elseif has_words_before() then
|
||||
cmp.complete()
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
["<S-Tab>"] = cmp.mapping(function(fallback)
|
||||
if cmp.visible() then
|
||||
cmp.select_prev_item()
|
||||
elseif luasnip.jumpable(-1) then
|
||||
luasnip.jump(-1)
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end, { "i", "s" }),
|
||||
|
||||
["<CR>"] = cmp.mapping({
|
||||
i = function(fallback)
|
||||
if cmp.visible() and cmp.get_active_entry() then
|
||||
cmp.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = false })
|
||||
else
|
||||
fallback()
|
||||
end
|
||||
end,
|
||||
s = cmp.mapping.confirm({ select = true }),
|
||||
c = cmp.mapping.confirm({ behavior = cmp.ConfirmBehavior.Replace, select = true }),
|
||||
}),
|
||||
},
|
||||
})
|
||||
|
||||
vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||
-- Disable virtual_text
|
||||
virtual_text = false,
|
||||
})
|
||||
|
||||
require("notify").setup({
|
||||
background_colour = "#000000",
|
||||
})
|
||||
'';
|
||||
};
|
||||
|
||||
extraPackages = LSPs ++ LSPs';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
{ lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
let
|
||||
Loading…
Add table
Add a link
Reference in a new issue