even more dedupe
This commit is contained in:
parent
2dfc594aad
commit
e13781ffb2
8 changed files with 213 additions and 370 deletions
|
@ -1 +1,9 @@
|
||||||
# Common NixOS Config shared between desktop and laptop
|
# Common Desktop Config
|
||||||
|
This is where I store the NixOS config that is common between
|
||||||
|
my laptop and desktop
|
||||||
|
|
||||||
|
## Files
|
||||||
|
* `./default.nix`: Contains common systemwide configuration
|
||||||
|
* See also <../modules>
|
||||||
|
* `./home.nix`: Contains common user-level configuration
|
||||||
|
* See also <../hm-modules>
|
||||||
|
|
94
nixos/common/desktop/home.nix
Normal file
94
nixos/common/desktop/home.nix
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
{ pkgs, inputs, config, ... }:
|
||||||
|
let
|
||||||
|
tex = pkgs.texlive.combine {
|
||||||
|
inherit (pkgs.texlive) scheme-full;
|
||||||
|
dnd-5e-latex-template = { pkgs = [ pkgs.v.dnd-5e-latex-template ]; };
|
||||||
|
};
|
||||||
|
my-python-packages = ps: with ps; [ pandas requests numpy ];
|
||||||
|
in {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
btop
|
||||||
|
calibre
|
||||||
|
element-desktop
|
||||||
|
fusee-launcher
|
||||||
|
gcc
|
||||||
|
gimp
|
||||||
|
inputs.comma.packages.${pkgs.system}.default
|
||||||
|
inputs.webcord.packages.${pkgs.system}.default
|
||||||
|
jetbrains.clion
|
||||||
|
jetbrains.idea-ultimate
|
||||||
|
mullvad-vpn
|
||||||
|
neofetch
|
||||||
|
nixfmt
|
||||||
|
nixpkgs-review
|
||||||
|
(python3.withPackages my-python-packages)
|
||||||
|
plex-media-player
|
||||||
|
rustup
|
||||||
|
solo2-cli
|
||||||
|
tex
|
||||||
|
yt-dlp
|
||||||
|
];
|
||||||
|
|
||||||
|
themes.v.catppuccin.enable = true;
|
||||||
|
programs.v.nvim.enable = true;
|
||||||
|
programs.v.vscode.enable = true;
|
||||||
|
|
||||||
|
programs.riff = {
|
||||||
|
enable = true;
|
||||||
|
direnv = true;
|
||||||
|
};
|
||||||
|
programs.exa = {
|
||||||
|
enable = true;
|
||||||
|
enableAliases = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.bat.enable = true;
|
||||||
|
|
||||||
|
programs.git = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.gitAndTools.gitFull;
|
||||||
|
userName = "Victor";
|
||||||
|
userEmail = "victor@xirion.net";
|
||||||
|
lfs.enable = true;
|
||||||
|
# delta.enable = true;
|
||||||
|
extraConfig = {
|
||||||
|
push.autoSetupRemote = true;
|
||||||
|
init.defaultBranch = "main";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.tmux = {
|
||||||
|
enable = true;
|
||||||
|
shortcut = "b";
|
||||||
|
terminal = "screen-256color";
|
||||||
|
clock24 = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.firefox.enable = true;
|
||||||
|
|
||||||
|
programs.direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
sessionVariables = { DIRENV_LOG_FORMAT = ""; };
|
||||||
|
};
|
||||||
|
|
||||||
|
# Syncthing
|
||||||
|
services.syncthing.enable = true;
|
||||||
|
xdg.userDirs = let home = config.home.homeDirectory;
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
createDirectories = true;
|
||||||
|
desktop = "${home}/.desktop";
|
||||||
|
documents = "${home}/cloud/Documents";
|
||||||
|
download = "${home}/dl";
|
||||||
|
music = "${home}/cloud/Music";
|
||||||
|
pictures = "${home}/cloud/Pictures";
|
||||||
|
publicShare = "${home}/.publicShare";
|
||||||
|
templates = "${home}/.templates";
|
||||||
|
videos = "${home}/cloud/Videos";
|
||||||
|
};
|
||||||
|
}
|
|
@ -3,5 +3,6 @@
|
||||||
./catppuccin.nix
|
./catppuccin.nix
|
||||||
./nvim.nix
|
./nvim.nix
|
||||||
./riff.nix
|
./riff.nix
|
||||||
|
./vscode.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
68
nixos/common/hm-modules/vscode.nix
Normal file
68
nixos/common/hm-modules/vscode.nix
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
with lib;
|
||||||
|
let cfg = config.programs.v.vscode;
|
||||||
|
in {
|
||||||
|
options.programs.v.vscode = { enable = mkEnableOption "vscode"; };
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.vscode = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.vscode;
|
||||||
|
userSettings = {
|
||||||
|
"ltex.language" = "en-GB";
|
||||||
|
"latex-workshop.linting.chktex.enabled" = true;
|
||||||
|
"latex-workshop.latex.clean.subfolder.enabled" = true;
|
||||||
|
"latex-workshop.latex.outDir" = "%TMPDIR%/%RELATIVE_DOC%";
|
||||||
|
"editor.fontFamily" =
|
||||||
|
"'DejaVuSansMono Nerd Font', 'monospace', monospace";
|
||||||
|
"keyboard.dispatch" = "keyCode";
|
||||||
|
"rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
|
||||||
|
"terminal.integrated.defaultProfile.linux" = "zsh";
|
||||||
|
"nix.enableLanguageServer" = true; # Enable LSP.
|
||||||
|
"nix.serverPath" = "${pkgs.nil}/bin/nil";
|
||||||
|
"[nix]" = { "editor.defaultFormatter" = "brettm12345.nixfmt-vscode"; };
|
||||||
|
"rust-analyzer.checkOnSave.command" = "clippy";
|
||||||
|
"debug.allowBreakpointsEverywhere" = true;
|
||||||
|
# Don't index unecessary things
|
||||||
|
"files.exclude" = {
|
||||||
|
"**/.vscode" = true;
|
||||||
|
"**/.git" = true;
|
||||||
|
"**/.svn" = true;
|
||||||
|
"**/.hg" = true;
|
||||||
|
"**/.deps" = true;
|
||||||
|
"**/CVS" = true;
|
||||||
|
"**/.DS_Store" = true;
|
||||||
|
"/bin" = true;
|
||||||
|
"/boot" = true;
|
||||||
|
"/cdrom" = true;
|
||||||
|
"/dev" = true;
|
||||||
|
"/proc" = true;
|
||||||
|
"/etc" = true;
|
||||||
|
"/nix" = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extensions = with pkgs.vscode-extensions;
|
||||||
|
with pkgs.v.vscode-extensions; [
|
||||||
|
brettm12345.nixfmt-vscode
|
||||||
|
codezombiech.gitignore
|
||||||
|
editorconfig.editorconfig
|
||||||
|
foxundermoon.shell-format
|
||||||
|
james-yu.latex-workshop
|
||||||
|
jnoortheen.nix-ide
|
||||||
|
matklad.rust-analyzer
|
||||||
|
mkhl.direnv
|
||||||
|
ms-vscode-remote.remote-ssh
|
||||||
|
ms-vscode.cpptools
|
||||||
|
platformio.platformio-ide
|
||||||
|
redhat.vscode-yaml
|
||||||
|
tamasfe.even-better-toml
|
||||||
|
valentjn.vscode-ltex
|
||||||
|
vscodevim.vim
|
||||||
|
vadimcn.vscode-lldb
|
||||||
|
xaver.clang-format
|
||||||
|
sumneko.lua
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ in {
|
||||||
|
|
||||||
# Add Home-manager dconf stuff
|
# Add Home-manager dconf stuff
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
./dconf.nix
|
./hm.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Configure keymap in X11
|
# Configure keymap in X11
|
||||||
|
|
|
@ -16,6 +16,40 @@ let
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/${name}")
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/${name}")
|
||||||
binds;
|
binds;
|
||||||
in {
|
in {
|
||||||
|
xdg.mimeApps.enable = true;
|
||||||
|
xdg.mimeApps.defaultApplications = {
|
||||||
|
"text/html" = "firefox.desktop";
|
||||||
|
"text/plain" = "org.gnome.TextEditor.desktop";
|
||||||
|
"application/pdf" = "org.gnome.Evince.desktop";
|
||||||
|
|
||||||
|
# Images
|
||||||
|
"image/bmp" = "org.gnome.eog.desktop";
|
||||||
|
"image/gif" = "org.gnome.eog.desktop";
|
||||||
|
"image/jpg" = "org.gnome.eog.desktop";
|
||||||
|
"image/pjpeg" = "org.gnome.eog.desktop";
|
||||||
|
"image/png" = "org.gnome.eog.desktop";
|
||||||
|
"image/tiff" = "org.gnome.eog.desktop";
|
||||||
|
"image/webp" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-bmp" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-gray" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-icb" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-ico" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-png" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-portable-anymap" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-portable-bitmap" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-portable-graymap" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-portable-pixmap" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-xbitmap" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-xpixmap" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-pcx" = "org.gnome.eog.desktop";
|
||||||
|
"image/svg+xml" = "org.gnome.eog.desktop";
|
||||||
|
"image/svg+xml-compressed" = "org.gnome.eog.desktop";
|
||||||
|
"image/vnd.wap.wbmp" = "org.gnome.eog.desktop";
|
||||||
|
"image/x-icns" = "org.gnome.eog.desktop";
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
dconf.settings = {
|
dconf.settings = {
|
||||||
"org/gnome/desktop/input-sources" = {
|
"org/gnome/desktop/input-sources" = {
|
||||||
sources = [ (mkTuple [ "xkb" "us+altgr-intl" ]) ];
|
sources = [ (mkTuple [ "xkb" "us+altgr-intl" ]) ];
|
|
@ -1,197 +1,14 @@
|
||||||
{ lib, config, pkgs, inputs, ... }:
|
{ ... }: {
|
||||||
let
|
|
||||||
tex = pkgs.texlive.combine {
|
|
||||||
inherit (pkgs.texlive) scheme-full;
|
|
||||||
dnd-5e-latex-template = { pkgs = [ pkgs.v.dnd-5e-latex-template ]; };
|
|
||||||
};
|
|
||||||
my-python-packages = ps: with ps; [ pandas requests numpy ];
|
|
||||||
in {
|
|
||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
imports = [];
|
|
||||||
|
|
||||||
home.username = "victor";
|
home.username = "victor";
|
||||||
home.homeDirectory = "/home/victor";
|
home.homeDirectory = "/home/victor";
|
||||||
home.stateVersion = "23.05";
|
home.stateVersion = "23.05";
|
||||||
|
|
||||||
# Enable catppuccin theme
|
imports = [ ../../../../common/desktop/home.nix ];
|
||||||
themes.v.catppuccin.enable = true;
|
|
||||||
|
|
||||||
# Custom dconf settings
|
# Custom dconf settings
|
||||||
dconf.settings."org/gnome/desktop/input-sources".xkb-options = [ "caps:swapescape"];
|
dconf.settings."org/gnome/desktop/input-sources" = {
|
||||||
|
xkb-options = [ "caps:swapescape" ];
|
||||||
programs.v.nvim.enable = true;
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
btop
|
|
||||||
calibre
|
|
||||||
element-desktop
|
|
||||||
fusee-launcher
|
|
||||||
gcc
|
|
||||||
gimp
|
|
||||||
inputs.comma.packages.${pkgs.system}.default
|
|
||||||
inputs.webcord.packages.${pkgs.system}.default
|
|
||||||
jetbrains.clion
|
|
||||||
jetbrains.idea-ultimate
|
|
||||||
mullvad-vpn
|
|
||||||
neofetch
|
|
||||||
nixfmt
|
|
||||||
nixpkgs-review
|
|
||||||
(python3.withPackages my-python-packages)
|
|
||||||
plex-media-player
|
|
||||||
rustup
|
|
||||||
solo2-cli
|
|
||||||
tex
|
|
||||||
yt-dlp
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.riff = {
|
|
||||||
enable = true;
|
|
||||||
direnv = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.mimeApps.enable = true;
|
|
||||||
xdg.mimeApps.defaultApplications = {
|
|
||||||
"text/html" = "firefox.desktop";
|
|
||||||
"text/plain" = "org.gnome.TextEditor.desktop";
|
|
||||||
"application/pdf" = "org.gnome.Evince.desktop";
|
|
||||||
|
|
||||||
# Images
|
|
||||||
"image/bmp" = "org.gnome.eog.desktop";
|
|
||||||
"image/gif" = "org.gnome.eog.desktop";
|
|
||||||
"image/jpg" = "org.gnome.eog.desktop";
|
|
||||||
"image/pjpeg" = "org.gnome.eog.desktop";
|
|
||||||
"image/png" = "org.gnome.eog.desktop";
|
|
||||||
"image/tiff" = "org.gnome.eog.desktop";
|
|
||||||
"image/webp" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-bmp" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-gray" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-icb" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-ico" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-png" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-portable-anymap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-portable-bitmap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-portable-graymap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-portable-pixmap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-xbitmap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-xpixmap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-pcx" = "org.gnome.eog.desktop";
|
|
||||||
"image/svg+xml" = "org.gnome.eog.desktop";
|
|
||||||
"image/svg+xml-compressed" = "org.gnome.eog.desktop";
|
|
||||||
"image/vnd.wap.wbmp" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-icns" = "org.gnome.eog.desktop";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.exa = {
|
|
||||||
enable = true;
|
|
||||||
enableAliases = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.bat.enable = true;
|
|
||||||
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.gitAndTools.gitFull;
|
|
||||||
userName = "Victor";
|
|
||||||
userEmail = "victor@xirion.net";
|
|
||||||
lfs.enable = true;
|
|
||||||
# delta.enable = true;
|
|
||||||
extraConfig = {
|
|
||||||
push.autoSetupRemote = true;
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.tmux = {
|
|
||||||
enable = true;
|
|
||||||
shortcut = "b";
|
|
||||||
terminal = "screen-256color";
|
|
||||||
clock24 = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
|
|
||||||
programs.vscode = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.vscode;
|
|
||||||
userSettings = {
|
|
||||||
"ltex.language" = "en-GB";
|
|
||||||
"latex-workshop.linting.chktex.enabled" = true;
|
|
||||||
"latex-workshop.latex.clean.subfolder.enabled" = true;
|
|
||||||
"latex-workshop.latex.outDir" = "%TMPDIR%/%RELATIVE_DOC%";
|
|
||||||
"editor.fontFamily" =
|
|
||||||
"'DejaVuSansMono Nerd Font', 'monospace', monospace";
|
|
||||||
"keyboard.dispatch" = "keyCode";
|
|
||||||
"rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
|
|
||||||
"terminal.integrated.defaultProfile.linux" = "zsh";
|
|
||||||
"nix.enableLanguageServer" = true; # Enable LSP.
|
|
||||||
"nix.serverPath" = "${pkgs.nil}/bin/nil";
|
|
||||||
"[nix]" = { "editor.defaultFormatter" = "brettm12345.nixfmt-vscode"; };
|
|
||||||
"rust-analyzer.checkOnSave.command" = "clippy";
|
|
||||||
"debug.allowBreakpointsEverywhere" = true;
|
|
||||||
# Don't index unecessary things
|
|
||||||
"files.exclude" = {
|
|
||||||
"**/.vscode" = true;
|
|
||||||
"**/.git" = true;
|
|
||||||
"**/.svn" = true;
|
|
||||||
"**/.hg" = true;
|
|
||||||
"**/.deps" = true;
|
|
||||||
"**/CVS" = true;
|
|
||||||
"**/.DS_Store" = true;
|
|
||||||
"/bin" = true;
|
|
||||||
"/boot" = true;
|
|
||||||
"/cdrom" = true;
|
|
||||||
"/dev" = true;
|
|
||||||
"/proc" = true;
|
|
||||||
"/etc" = true;
|
|
||||||
"/nix" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extensions = with pkgs.vscode-extensions;
|
|
||||||
with pkgs.v.vscode-extensions; [
|
|
||||||
brettm12345.nixfmt-vscode
|
|
||||||
codezombiech.gitignore
|
|
||||||
editorconfig.editorconfig
|
|
||||||
foxundermoon.shell-format
|
|
||||||
james-yu.latex-workshop
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
matklad.rust-analyzer
|
|
||||||
mkhl.direnv
|
|
||||||
ms-vscode-remote.remote-ssh
|
|
||||||
ms-vscode.cpptools
|
|
||||||
platformio.platformio-ide
|
|
||||||
redhat.vscode-yaml
|
|
||||||
tamasfe.even-better-toml
|
|
||||||
valentjn.vscode-ltex
|
|
||||||
vscodevim.vim
|
|
||||||
vadimcn.vscode-lldb
|
|
||||||
xaver.clang-format
|
|
||||||
sumneko.lua
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
sessionVariables = { DIRENV_LOG_FORMAT = ""; };
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.userDirs = let home = config.home.homeDirectory;
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
createDirectories = true;
|
|
||||||
desktop = "${home}/.desktop";
|
|
||||||
documents = "${home}/cloud/Documents";
|
|
||||||
download = "${home}/dl";
|
|
||||||
music = "${home}/cloud/Music";
|
|
||||||
pictures = "${home}/cloud/Pictures";
|
|
||||||
publicShare = "${home}/.publicShare";
|
|
||||||
templates = "${home}/.templates";
|
|
||||||
videos = "${home}/cloud/Videos";
|
|
||||||
};
|
|
||||||
services.syncthing.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,188 +11,9 @@ in {
|
||||||
home.homeDirectory = "/home/victor";
|
home.homeDirectory = "/home/victor";
|
||||||
home.stateVersion = "23.05";
|
home.stateVersion = "23.05";
|
||||||
|
|
||||||
|
imports = [ ../../../../common/desktop/home.nix ];
|
||||||
|
|
||||||
dconf.settings."org/gnome/desktop/peripherals/mouse" = {
|
dconf.settings."org/gnome/desktop/peripherals/mouse" = {
|
||||||
accel-profile = "flat";
|
accel-profile = "flat";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Enable my neovim config
|
|
||||||
programs.v.nvim.enable = true;
|
|
||||||
|
|
||||||
# Enable catppuccin theme
|
|
||||||
themes.v.catppuccin.enable = true;
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
btop
|
|
||||||
calibre
|
|
||||||
element-desktop
|
|
||||||
fusee-launcher
|
|
||||||
gcc
|
|
||||||
gimp
|
|
||||||
inputs.comma.packages.${pkgs.system}.default
|
|
||||||
inputs.webcord.packages.${pkgs.system}.default
|
|
||||||
jetbrains.clion
|
|
||||||
jetbrains.idea-ultimate
|
|
||||||
mullvad-vpn
|
|
||||||
neofetch
|
|
||||||
nixfmt
|
|
||||||
nixpkgs-review
|
|
||||||
python3
|
|
||||||
plex-media-player
|
|
||||||
rustup
|
|
||||||
solo2-cli
|
|
||||||
tex
|
|
||||||
yt-dlp
|
|
||||||
wootility
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.riff = {
|
|
||||||
enable = true;
|
|
||||||
direnv = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.mimeApps.enable = true;
|
|
||||||
xdg.mimeApps.defaultApplications = {
|
|
||||||
"text/html" = "firefox.desktop";
|
|
||||||
"text/plain" = "org.gnome.TextEditor.desktop";
|
|
||||||
"application/pdf" = "org.gnome.Evince.desktop";
|
|
||||||
|
|
||||||
# Images
|
|
||||||
"image/bmp" = "org.gnome.eog.desktop";
|
|
||||||
"image/gif" = "org.gnome.eog.desktop";
|
|
||||||
"image/jpg" = "org.gnome.eog.desktop";
|
|
||||||
"image/pjpeg" = "org.gnome.eog.desktop";
|
|
||||||
"image/png" = "org.gnome.eog.desktop";
|
|
||||||
"image/tiff" = "org.gnome.eog.desktop";
|
|
||||||
"image/webp" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-bmp" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-gray" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-icb" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-ico" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-png" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-portable-anymap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-portable-bitmap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-portable-graymap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-portable-pixmap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-xbitmap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-xpixmap" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-pcx" = "org.gnome.eog.desktop";
|
|
||||||
"image/svg+xml" = "org.gnome.eog.desktop";
|
|
||||||
"image/svg+xml-compressed" = "org.gnome.eog.desktop";
|
|
||||||
"image/vnd.wap.wbmp" = "org.gnome.eog.desktop";
|
|
||||||
"image/x-icns" = "org.gnome.eog.desktop";
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.exa = {
|
|
||||||
enable = true;
|
|
||||||
enableAliases = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.bat.enable = true;
|
|
||||||
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.gitAndTools.gitFull;
|
|
||||||
userName = "Victor";
|
|
||||||
userEmail = "victor@xirion.net";
|
|
||||||
lfs.enable = true;
|
|
||||||
# delta.enable = true;
|
|
||||||
extraConfig = {
|
|
||||||
push.autoSetupRemote = true;
|
|
||||||
init.defaultBranch = "main";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.tmux = {
|
|
||||||
enable = true;
|
|
||||||
shortcut = "b";
|
|
||||||
terminal = "screen-256color";
|
|
||||||
clock24 = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.firefox.enable = true;
|
|
||||||
|
|
||||||
programs.vscode = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.vscode;
|
|
||||||
userSettings = {
|
|
||||||
"ltex.language" = "en-GB";
|
|
||||||
"latex-workshop.linting.chktex.enabled" = true;
|
|
||||||
"latex-workshop.latex.clean.subfolder.enabled" = true;
|
|
||||||
"latex-workshop.latex.outDir" = "%TMPDIR%/%RELATIVE_DOC%";
|
|
||||||
"editor.fontFamily" =
|
|
||||||
"'DejaVuSansMono Nerd Font', 'monospace', monospace";
|
|
||||||
"keyboard.dispatch" = "keyCode";
|
|
||||||
"rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
|
|
||||||
"terminal.integrated.defaultProfile.linux" = "zsh";
|
|
||||||
"nix.enableLanguageServer" = true; # Enable LSP.
|
|
||||||
"nix.serverPath" = "${pkgs.nil}/bin/nil";
|
|
||||||
"[nix]" = { "editor.defaultFormatter" = "brettm12345.nixfmt-vscode"; };
|
|
||||||
"rust-analyzer.checkOnSave.command" = "clippy";
|
|
||||||
"debug.allowBreakpointsEverywhere" = true;
|
|
||||||
# Don't index unecessary things
|
|
||||||
"files.exclude" = {
|
|
||||||
"**/.vscode" = true;
|
|
||||||
"**/.git" = true;
|
|
||||||
"**/.svn" = true;
|
|
||||||
"**/.hg" = true;
|
|
||||||
"**/.deps" = true;
|
|
||||||
"**/CVS" = true;
|
|
||||||
"**/.DS_Store" = true;
|
|
||||||
"/bin" = true;
|
|
||||||
"/boot" = true;
|
|
||||||
"/cdrom" = true;
|
|
||||||
"/dev" = true;
|
|
||||||
"/proc" = true;
|
|
||||||
"/etc" = true;
|
|
||||||
"/nix" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
extensions = with pkgs.vscode-extensions;
|
|
||||||
with pkgs.v.vscode-extensions; [
|
|
||||||
brettm12345.nixfmt-vscode
|
|
||||||
codezombiech.gitignore
|
|
||||||
editorconfig.editorconfig
|
|
||||||
foxundermoon.shell-format
|
|
||||||
james-yu.latex-workshop
|
|
||||||
jnoortheen.nix-ide
|
|
||||||
matklad.rust-analyzer
|
|
||||||
mkhl.direnv
|
|
||||||
ms-vscode-remote.remote-ssh
|
|
||||||
ms-vscode.cpptools
|
|
||||||
platformio.platformio-ide
|
|
||||||
redhat.vscode-yaml
|
|
||||||
tamasfe.even-better-toml
|
|
||||||
valentjn.vscode-ltex
|
|
||||||
vscodevim.vim
|
|
||||||
vadimcn.vscode-lldb
|
|
||||||
xaver.clang-format
|
|
||||||
sumneko.lua
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
sessionVariables = { DIRENV_LOG_FORMAT = ""; };
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.userDirs = let home = config.home.homeDirectory;
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
createDirectories = true;
|
|
||||||
desktop = "${home}/.desktop";
|
|
||||||
documents = "${home}/cloud/Documents";
|
|
||||||
download = "${home}/dl";
|
|
||||||
music = "${home}/cloud/Music";
|
|
||||||
pictures = "${home}/cloud/Pictures";
|
|
||||||
publicShare = "${home}/.publicShare";
|
|
||||||
templates = "${home}/.templates";
|
|
||||||
videos = "${home}/cloud/Videos";
|
|
||||||
};
|
|
||||||
|
|
||||||
services.syncthing.enable = true;
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue