Compare commits

..

No commits in common. "bf8818fbb3940f1c4ef125cece0b0798a12f85a2" and "853fec65f38d890659eb6d2bbb3a6cca2c8f124c" have entirely different histories.

12 changed files with 112 additions and 205 deletions

View File

@ -4,7 +4,5 @@
```bash ```bash
git clone https://git.foglar.tech/foglar/dotfiles.git $HOME/dotfiles --depth 1 git clone https://git.foglar.tech/foglar/dotfiles.git $HOME/dotfiles --depth 1
sudo nixos-rebuild switch --flake ~/dotfiles#laptop sudo nixos-rebuild switch ~/dotfiles#laptop
``` ```
## Features

View File

@ -52,9 +52,6 @@
username = "foglar"; username = "foglar";
hostname = "laptop"; hostname = "laptop";
shell = "bash"; # bash, zsh
terminal = "kitty";
theme = "catppuccin-mocha"; theme = "catppuccin-mocha";
background = "aurora_borealis.png"; background = "aurora_borealis.png";
}; };

View File

@ -73,7 +73,6 @@
proxychains.enable = false; proxychains.enable = false;
tor.enable = false; tor.enable = false;
virt-manager.enable = false; virt-manager.enable = false;
virtualbox.enable = false;
}; };
# Basic programs to enable # Basic programs to enable

View File

@ -12,12 +12,15 @@
config = lib.mkIf config.app_list.terminal_tools.enable { config = lib.mkIf config.app_list.terminal_tools.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
pfetch
bat
btop btop
cmatrix cmatrix
entr entr
figlet figlet
jp2a jp2a
yt-dlp yt-dlp
eza
nvtopPackages.full nvtopPackages.full
neofetch neofetch
wget wget

View File

@ -56,6 +56,11 @@
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;
#plugins = [
#inputs.hyprland-plugins.packages.${pkgs.system}.hyprbars
#inputs.Hyprspace.packages.${pkgs.system}.Hyprspace
#];
settings = { settings = {
monitor = [ monitor = [
"eDP-1,1920x1080,0x0,1" "eDP-1,1920x1080,0x0,1"

View File

@ -37,22 +37,7 @@
firefox.enable = lib.mkDefault true; firefox.enable = lib.mkDefault true;
spotify.enable = lib.mkDefault true; spotify.enable = lib.mkDefault true;
vscode = { vscode.enable = lib.mkDefault true;
enable = lib.mkDefault true;
ide = {
python.enable = lib.mkDefault true;
go.enable = lib.mkDefault true;
csharp.enable = lib.mkDefault true;
cpp.enable = lib.mkDefault false;
web.enable = lib.mkDefault true;
};
nix.enable = lib.mkDefault true;
markdown.enable = lib.mkDefault true;
ai.enable = lib.mkDefault true;
git.enable = lib.mkDefault true;
themes.enable = lib.mkDefault false;
};
git.enable = lib.mkDefault true; git.enable = lib.mkDefault true;
neovim.enable = lib.mkDefault true; neovim.enable = lib.mkDefault true;
}; };

View File

@ -7,117 +7,57 @@
}: { }: {
options = { options = {
program.vscode.enable = lib.mkEnableOption "enable vscode"; program.vscode.enable = lib.mkEnableOption "enable vscode";
program.vscode.ide.python.enable = lib.mkEnableOption "enable python for vscode";
program.vscode.ide.go.enable = lib.mkEnableOption "enable go for vscode";
program.vscode.ide.csharp.enable = lib.mkEnableOption "enable c# for vscode";
program.vscode.ide.web.enable = lib.mkEnableOption "enable html and css for vscode";
program.vscode.ide.cpp.enable = lib.mkEnableOption "enable cpp for vscode";
program.vscode.nix.enable = lib.mkEnableOption "enable nix support for vscode";
program.vscode.ai.enable = lib.mkEnableOption "enable ai copilot for vscode";
program.vscode.git.enable = lib.mkEnableOption "enable git features for vscode";
program.vscode.themes.enable = lib.mkEnableOption "enable themes for vscode";
program.vscode.markdown.enable = lib.mkEnableOption "enable markdown for vscode";
}; };
config = lib.mkMerge [ config = lib.mkIf config.program.vscode.enable {
(lib.mkIf config.program.vscode.enable { home.packages = with pkgs; [
home.packages = with pkgs; [ vscode
vscode ];
];
programs.vscode = { home.sessionVariables = {
enable = true; GOOS = "linux";
GOARCH = "amd64";
GOPATH = "$HOME/.local/share/go";
};
userSettings = { programs.vscode = {
"files.autoSave" = "afterDelay"; enable = true;
"explorer.confirmDragAndDrop" = false;
"editor.fontSize" = 16; userSettings = {
"editor.minimap.side" = "right"; "files.autoSave" = "afterDelay";
"editor.scrollbar.vertical" = "hidden"; "explorer.confirmDragAndDrop" = false;
"editor.scrollbar.verticalScrollbarSize" = 0; "editor.fontSize" = 16;
"editor.fontLigatures" = "'calt', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09', 'liga'"; "editor.minimap.side" = "right";
"editor.stickyScroll.enabled" = false; "editor.scrollbar.vertical" = "hidden";
"security.workspace.trust.untrustedFiles" = "newWindow"; "editor.scrollbar.verticalScrollbarSize" = 0;
"security.workspace.trust.startupPrompt" = "never"; "editor.fontLigatures" = "'calt', 'ss01', 'ss02', 'ss03', 'ss04', 'ss05', 'ss06', 'ss07', 'ss08', 'ss09', 'liga'";
"security.workspace.trust.enabled" = false; "editor.stickyScroll.enabled" = false;
"terminal.external.linuxExec" = "${pkgs.kitty}/bin/kitty"; "security.workspace.trust.untrustedFiles" = "newWindow";
"terminal.integrated.stickyScroll.enabled" = true; "security.workspace.trust.startupPrompt" = "never";
"terminal.integrated.inheritEnv" = false; "security.workspace.trust.enabled" = false;
"telemetry.telemetryLevel" = "off"; "terminal.external.linuxExec" = "kitty";
"workbench.activityBar.location" = "hidden"; # bottom "terminal.integrated.stickyScroll.enabled" = true;
"workbench.iconTheme" = "material-icon-theme"; "terminal.integrated.inheritEnv"= false;
"workbench.productIconTheme" = "material-product-icons"; "telemetry.telemetryLevel" = "off";
"window.menuBarVisibility" = "toggle"; "workbench.activityBar.location" = "hidden"; # bottom
"workbench.iconTheme" = "material-icon-theme";
"workbench.productIconTheme" = "material-product-icons";
"window.menuBarVisibility" = "toggle";
"github.copilot.editor.enableAutoCompletions" = false;
"[json]" = {
"editor.defaultFormatter" = "esbenp.prettier-vscode";
}; };
extensions = with pkgs-stable.vscode-extensions; [
ms-azuretools.vscode-docker
foxundermoon.shell-format
tamasfe.even-better-toml
aaron-bond.better-comments
christian-kohler.path-intellisense
github.codespaces
# Remote
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-ssh-edit
];
};
})
(lib.mkIf config.program.vscode.ide.python.enable {
programs.vscode.userSettings = {
"[python]" = { "[python]" = {
"editor.defaultFormatter" = "ms-python.black-formatter"; "editor.defaultFormatter" = "ms-python.black-formatter";
"python.defaultInterpreterPath" = "${pkgs.python3}";
}; };
}; "[html]" = {
"editor.defaultFormatter" = "esbenp.prettier-vscode";
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ };
ms-python.python "python.defaultInterpreterPath" = "${pkgs.python3}";
ms-python.vscode-pylance
ms-python.black-formatter
ms-python.debugpy
njpwerner.autodocstring
ms-toolsai.jupyter
ms-toolsai.jupyter-keymap
ms-toolsai.jupyter-renderers
];
})
(lib.mkIf config.program.vscode.ide.go.enable {
programs.vscode.userSettings = {
"go.alternateTools" = { "go.alternateTools" = {
"go-langserver" = "${pkgs.gopls}/bin/gopls"; "go-langserver" = "${pkgs.gopls}/bin/gopls";
}; };
"gopls" = {"ui.diagnostic.staticcheck" = true;}; "gopls" = {"ui.diagnostic.staticcheck" = true;};
};
home.sessionVariables = {
GOOS = "linux";
GOARCH = "amd64";
GOPATH = "$HOME/.local/share/go";
};
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [
golang.go
];
})
(lib.mkIf config.program.vscode.ide.csharp.enable {
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [
ms-dotnettools.csharp
ms-dotnettools.csdevkit
ms-dotnettools.vscodeintellicode-csharp
ms-dotnettools.vscode-dotnet-runtime
];
})
(lib.mkIf config.program.vscode.nix.enable {
programs.vscode.userSettings = {
"nix.serverPath" = "nixd"; "nix.serverPath" = "nixd";
"nix.enableLanguageServer" = true; "nix.enableLanguageServer" = true;
"nix.serverSettings" = { "nix.serverSettings" = {
@ -138,48 +78,53 @@
}; };
}; };
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ extensions = with pkgs-stable.vscode-extensions; [
ms-azuretools.vscode-docker
# Mardown
yzhang.markdown-all-in-one
davidanson.vscode-markdownlint
foxundermoon.shell-format
tamasfe.even-better-toml
aaron-bond.better-comments
christian-kohler.path-intellisense
jnoortheen.nix-ide jnoortheen.nix-ide
];
})
(lib.mkIf config.program.vscode.ide.web.enable { github.vscode-pull-request-github
programs.vscode.userSettings = { github.vscode-github-actions
"[json]" = { github.codespaces
"editor.defaultFormatter" = "esbenp.prettier-vscode";
};
"[html]" = {
"editor.defaultFormatter" = "esbenp.prettier-vscode";
};
};
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ # Remote
ms-vscode-remote.remote-ssh
ms-vscode-remote.remote-ssh-edit
# Webdev
ritwickdey.liveserver ritwickdey.liveserver
esbenp.prettier-vscode esbenp.prettier-vscode
ecmel.vscode-html-css ecmel.vscode-html-css
ms-vscode.live-server ms-vscode.live-server
formulahendry.auto-rename-tag formulahendry.auto-rename-tag
];
})
(lib.mkIf config.program.vscode.git.enable { # Ai
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ github.copilot
github.copilot-chat
# Git
donjayamanne.githistory donjayamanne.githistory
eamodio.gitlens eamodio.gitlens
github.vscode-pull-request-github
github.vscode-github-actions
];
})
(lib.mkIf config.program.vscode.markdown.enable { # Python
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [ ms-python.python
yzhang.markdown-all-in-one ms-python.vscode-pylance
davidanson.vscode-markdownlint ms-python.black-formatter
]; ms-python.debugpy
}) njpwerner.autodocstring
ms-toolsai.jupyter
ms-toolsai.jupyter-keymap
ms-toolsai.jupyter-renderers
(lib.mkIf config.program.vscode.themes.enable { # Theme
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [
catppuccin.catppuccin-vsc catppuccin.catppuccin-vsc
catppuccin.catppuccin-vsc-icons catppuccin.catppuccin-vsc-icons
zhuangtongfa.material-theme zhuangtongfa.material-theme
@ -187,25 +132,20 @@
enkia.tokyo-night enkia.tokyo-night
pkief.material-product-icons pkief.material-product-icons
pkief.material-icon-theme pkief.material-icon-theme
];
})
(lib.mkIf config.program.vscode.ai.enable { # C/C++
programs.vscode.userSettings = {
"github.copilot.editor.enableAutoCompletions" = true;
};
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [
github.copilot
github.copilot-chat
];
})
(lib.mkIf config.program.vscode.ide.cpp.enable {
programs.vscode.extensions = with pkgs-stable.vscode-extensions; [
twxs.cmake twxs.cmake
ms-vscode.cmake-tools ms-vscode.cmake-tools
# C#
ms-dotnettools.csharp
ms-dotnettools.csdevkit
ms-dotnettools.vscodeintellicode-csharp
ms-dotnettools.vscode-dotnet-runtime
# Go
golang.go
]; ];
}) };
]; };
} }

View File

@ -1,7 +1,6 @@
{ {
lib, lib,
config, config,
pkgs,
... ...
}: { }: {
options = { options = {
@ -10,26 +9,27 @@
}; };
config = lib.mkIf config.sh.bash.enable { config = lib.mkIf config.sh.bash.enable {
programs.bash = { programs.bash = {
enable = true; enable = true;
enableCompletion = true; enableCompletion = true;
shellAliases = { shellAliases = {
#vim = "nvim"; #vim = "nvim";
ls = "${pkgs.eza}/bin/eza --icons"; ls = "exa --icons";
ll = "${pkgs.eza}/bin/eza -alh --icons"; ll = "exa -alh --icons";
l = "${pkgs.eza}/bin/eza -lh --icons=auto"; tree = "exa --tree --icons";
tree = "${pkgs.eza}/bin/eza --tree --icons";
open = "rifle"; open = "rifle";
ip = "ip -c"; ip = "ip -c";
s = "kitten ssh"; s = "kitten ssh";
diff = "diff --color"; diff = "diff --color";
respawn = "clear; ${pkgs.pfetch}/bin/pfetch"; respawn = "clear; pfetch";
l = "eza -lh --icons=auto";
mkdir = "mkdir -p"; mkdir = "mkdir -p";
cat = "${pkgs.bat}/bin/bat --style plain"; cat = "bat --style plain";
rasp = "s foglar@192.168.8.140"; rasp = "s foglar@192.168.8.140";
hist = "history | awk '{for (i=2; i<=NF; i++) printf \$i\" \"; print \"\"}' | fzf | wl-copy"; hist = "history | awk '{for (i=2; i<=NF; i++) printf \$i\" \"; print \"\"}' | fzf | wl-copy";
cdx = "${pkgs.zoxide}/bin/zoxide query --interactive"; cdx = "zoxide query --interactive";
#distrobox-enter = "distrobox-enter --root"; #distrobox-enter = "distrobox-enter --root";
#distrobox-create = "distrobox-create --root"; #distrobox-create = "distrobox-create --root";
@ -37,7 +37,7 @@
}; };
bashrcExtra = '' bashrcExtra = ''
${pkgs.pfetch}/bin/pfetch''; pfetch'';
}; };
home.sessionVariables = { home.sessionVariables = {

View File

@ -14,7 +14,6 @@
proxychains.enable = lib.mkDefault true; proxychains.enable = lib.mkDefault true;
tor.enable = lib.mkDefault true; tor.enable = lib.mkDefault true;
virt-manager.enable = lib.mkDefault true; virt-manager.enable = lib.mkDefault true;
virtualbox.enable = lib.mkDefault true;
}; };
sys.desktop.steamdeck.enable = lib.mkDefault false; sys.desktop.steamdeck.enable = lib.mkDefault false;
programs.kdeconnect.enable = lib.mkDefault true; programs.kdeconnect.enable = lib.mkDefault true;

View File

@ -1,27 +1,13 @@
{ {
config, config,
lib, lib,
userSettings,
... ...
}: { }: {
options = { options = {
program.virt-manager.enable = lib.mkEnableOption "Enable virt-manager"; program.virt-manager.enable = lib.mkEnableOption "Enable virt-manager";
program.virtualbox.enable = lib.mkEnableOption "Enable VirtualBox";
}; };
config = lib.mkMerge [ config = lib.mkIf config.program.virt-manager.enable {
(lib.mkIf config.program.virt-manager.enable { virtualisation.libvirtd.enable = true;
virtualisation.libvirtd.enable = true; programs.virt-manager.enable = true;
programs.virt-manager.enable = true; };
})
(lib.mkIf config.program.virtualbox.enable {
virtualisation.virtualbox = {
host.enable = true;
guest = {
enable = true;
dragAndDrop = true;
};
};
users.extraGroups.vboxusers.members = ["${userSettings.username}"];
})
];
} }

View File

@ -75,7 +75,6 @@
proxychains.enable = true; proxychains.enable = true;
tor.enable = true; tor.enable = true;
virt-manager.enable = true; virt-manager.enable = true;
virtualbox.enable = false;
}; };
# Basic programs to enable # Basic programs to enable

View File

@ -22,11 +22,11 @@
# Application lists # Application lists
app_list = { app_list = {
applications.enable = true;
games.enable = true;
hacking.enable = true; hacking.enable = true;
programming.enable = true; applications.enable = true;
terminal_tools.enable = true; terminal_tools.enable = true;
programming.enable = true;
games.enable = true;
}; };
# Configured programs to enable # Configured programs to enable
@ -34,13 +34,9 @@
kitty.enable = true; kitty.enable = true;
tmux.enable = true; tmux.enable = true;
zoxide.enable = true; zoxide.enable = true;
vscode.enable = true;
vscode = {
enable = true;
};
git.enable = true; git.enable = true;
neovim.enable = true; neovim.enable = true;
firefox.enable = true; firefox.enable = true;
spotify.enable = true; spotify.enable = true;
}; };