Move HM modules
This commit is contained in:
parent
5db76d0fed
commit
3cf0004b78
110 changed files with 403 additions and 564 deletions
36
modules/hm/__basic.nix
Normal file
36
modules/hm/__basic.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ pkgs, ... }: {
|
||||
home = {
|
||||
language.base = "it_IT.UTF-8";
|
||||
packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
fd file htop lf mmv-go neofetch nixos-option pv ripgrep unrar unzip wget
|
||||
xclip yq zip;
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./configurations.nix
|
||||
|
||||
./bash.nix
|
||||
./bat.nix
|
||||
./bottom.nix
|
||||
# ./broot.nix
|
||||
./dircolors.nix
|
||||
./direnv.nix
|
||||
./exa.nix
|
||||
./fzf.nix
|
||||
./git.nix
|
||||
./gpg.nix
|
||||
./info.nix
|
||||
./jq.nix
|
||||
./keychain.nix
|
||||
./man.nix
|
||||
./shell_aliases.nix
|
||||
./ssh.nix
|
||||
./starship.nix
|
||||
./tmux.nix
|
||||
./zellij.nix
|
||||
./zoxide.nix
|
||||
./zsh.nix
|
||||
];
|
||||
}
|
||||
57
modules/hm/alacritty.nix
Normal file
57
modules/hm/alacritty.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
strPalette = with pkgs.rice;
|
||||
pkgs.lib.nix-rice.palette.toRgbHex rec {
|
||||
inherit (colorPalette) normal bright primary;
|
||||
dim = colorPalette.dark;
|
||||
cursor = {
|
||||
cursor = normal.white;
|
||||
text = normal.black;
|
||||
};
|
||||
vi_mode_cursor = {
|
||||
cursor = normal.white;
|
||||
text = normal.black;
|
||||
};
|
||||
selection.background = dim.blue;
|
||||
search = {
|
||||
matches.background = dim.cyan;
|
||||
bar = {
|
||||
foreground = dim.cyan;
|
||||
background = dim.yellow;
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
# Include fonts packages
|
||||
home.packages = [ pkgs.rice.font.monospace.package ];
|
||||
programs.alacritty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
key_bindings = [{
|
||||
key = "Return";
|
||||
mods = "Control|Shift";
|
||||
action = "SpawnNewInstance";
|
||||
}];
|
||||
# env.TERM = "xterm-256color";
|
||||
env = {
|
||||
TERM = "alacritty";
|
||||
WINIT_X11_SCALE_FACTOR = "1";
|
||||
};
|
||||
scrolling.history = 3000;
|
||||
font = {
|
||||
normal.family = pkgs.rice.font.monospace.name;
|
||||
inherit (pkgs.rice.font.monospace) size;
|
||||
};
|
||||
window.opacity = pkgs.rice.opacity;
|
||||
mouse = {
|
||||
# hide_when_typing = true;
|
||||
hints.modifiers = "Control";
|
||||
};
|
||||
colors = strPalette // {
|
||||
selection.text = "CellForeground";
|
||||
search.matches.foreground = "CellForeground";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
136
modules/hm/autorandr.nix
Normal file
136
modules/hm/autorandr.nix
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
{
|
||||
programs.autorandr = {
|
||||
enable = true;
|
||||
profiles =
|
||||
let
|
||||
dell-laptop = {
|
||||
dpi = 96;
|
||||
fingerprint =
|
||||
"00ffffffffffff0030e43f0500000000001a010495221378eaa1c59459578f27205054000000010101010101010101010101010101012e3680a070381f403020350058c21000001a5c2b80a070381f403020350058c21000001a000000fe0034584b3133803135365746360a000000000000413196001000000a010a202000c5";
|
||||
mode = "1920x1080";
|
||||
};
|
||||
schermo_lab_dp = {
|
||||
dpi = 96;
|
||||
fingerprint = "00ffffffffffff0010ac73404c47334428160104a5331d783bdd45a3554fa027125054a54b00714f8180d1c001010101010101010101023a801871382d40582c4500fe1f1100001e000000ff004b463837593241364433474c0a000000fc0044454c4c205532333132484d0a000000fd00384c1e5311000a2020202020200096";
|
||||
mode = "1920x1080";
|
||||
};
|
||||
lab_screen = {
|
||||
dpi = 96;
|
||||
fingerprint = "00ffffffffffff0010acd3a14246313216200104a53b21783be755a9544aa1260d5054a54b00714f8180a9c0d1c00101010101010101565e00a0a0a029503020350055502100001a000000ff00435958564744330a2020202020000000fc0044454c4c20533237323244430a000000fd00304b72723c010a20202020202001d9020325f14f101f051404131211030216150706012309070783010000681a00000101304b007e3900a080381f4030203a0055502100001a023a801871382d40582c450055502100001ed97600a0a0a034503020350055502100001a00000000000000000000000000000000000000000000000000000000000000000000000092";
|
||||
mode = "2560x1440";
|
||||
};
|
||||
in
|
||||
{
|
||||
odin-nvidia = {
|
||||
fingerprint = { "eDP-1-1" = dell-laptop.fingerprint; };
|
||||
config = {
|
||||
"eDP-1-1" = {
|
||||
inherit (dell-laptop) mode dpi;
|
||||
primary = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
odin-intel = {
|
||||
fingerprint = { "eDP1" = dell-laptop.fingerprint; };
|
||||
config = {
|
||||
"eDP1" = {
|
||||
inherit (dell-laptop) mode dpi;
|
||||
primary = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
odin-intel-lab-dock = {
|
||||
fingerprint = {
|
||||
"DP1-2" = schermo_lab_dp.fingerprint;
|
||||
"eDP1" = dell-laptop.fingerprint;
|
||||
};
|
||||
config = {
|
||||
"DP1-2" = {
|
||||
inherit (schermo_lab_dp) mode dpi;
|
||||
primary = true;
|
||||
};
|
||||
"eDP1" = {
|
||||
inherit (dell-laptop) mode dpi;
|
||||
position = "0x1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
odin-nvidia-lab-dock = {
|
||||
fingerprint = {
|
||||
"DP-1-1-2" = schermo_lab_dp.fingerprint;
|
||||
"eDP-1-1" = dell-laptop.fingerprint;
|
||||
};
|
||||
config = {
|
||||
"DP-1-1-2" = {
|
||||
inherit (schermo_lab_dp) mode dpi;
|
||||
primary = true;
|
||||
};
|
||||
"eDP-1-1" = {
|
||||
inherit (dell-laptop) mode dpi;
|
||||
position = "0x1080";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
odin-intel-lab-screen = {
|
||||
fingerprint = {
|
||||
"DP1" = lab_screen.fingerprint;
|
||||
"eDP1" = dell-laptop.fingerprint;
|
||||
};
|
||||
config = {
|
||||
"DP1" = {
|
||||
inherit (lab_screen) mode dpi;
|
||||
primary = true;
|
||||
};
|
||||
"eDP1" = {
|
||||
inherit (dell-laptop) mode dpi;
|
||||
position = "320x1440";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
odin-nvidia-lab-screen = {
|
||||
fingerprint = {
|
||||
"DP-1-1" = lab_screen.fingerprint;
|
||||
"eDP-1-1" = dell-laptop.fingerprint;
|
||||
};
|
||||
config = {
|
||||
"DP-1-1" = {
|
||||
inherit (lab_screen) mode dpi;
|
||||
primary = true;
|
||||
};
|
||||
"eDP-1-1" = {
|
||||
inherit (dell-laptop) mode dpi;
|
||||
position = "320x1440";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
thor-default = {
|
||||
fingerprint = {
|
||||
"DP-2" =
|
||||
"00ffffffffffff001e6d7f5ba1c60a00011f0104b53c22789f8cb5af4f43ab260e5054254b007140818081c0a9c0b300d1c08100d1cf09ec00a0a0a0675030203a0055502100001a000000fd0030901ee63c000a202020202020000000fc004c4720554c545241474541520a000000ff003130314e5454514c533230390a017102031a7123090607e305c000e606050160592846100403011f136fc200a0a0a0555030203a0055502100001a565e00a0a0a029503020350055502100001a5aa000a0a0a0465030203a005550210000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000da";
|
||||
"HDMI-0" =
|
||||
"00ffffffffffff004c2d2c0d443650302e19010380341d782a5295a556549d250e5054bb8c00b30081c0810081809500a9c001010101023a801871382d40582c450009252100001e000000fd0030481e5216000a202020202020000000fc00433234463339300a2020202020000000ff00485451483330353636370a20200163020324f14690041f131203230907078301000067030c001000802b681a00000101304800011d00bc52d01e20b828554009252100001e8c0ad090204031200c4055000925210000188c0ad08a20e02d10103e9600092521000018215280a07238304088c8350009252100001c00000000000000000000000000000000000000fa";
|
||||
};
|
||||
config = {
|
||||
"DP-2" = {
|
||||
mode = "2560x1440";
|
||||
position = "1080x346";
|
||||
primary = true;
|
||||
dpi = 96;
|
||||
};
|
||||
"HDMI-0" = {
|
||||
mode = "1920x1080";
|
||||
position = "0x0";
|
||||
rotate = "right";
|
||||
dpi = 96;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
11
modules/hm/bash.nix
Normal file
11
modules/hm/bash.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableVteIntegration = true;
|
||||
shellAliases = { ".." = "cd .."; };
|
||||
|
||||
bashrcExtra = ''
|
||||
source $HOME/.profile
|
||||
'';
|
||||
};
|
||||
}
|
||||
9
modules/hm/bat.nix
Normal file
9
modules/hm/bat.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "Nord";
|
||||
tabs = "2";
|
||||
};
|
||||
};
|
||||
}
|
||||
6
modules/hm/biblio.nix
Normal file
6
modules/hm/biblio.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs) calibre;
|
||||
inherit (pkgs.unstable_pkgs) mangal;
|
||||
};
|
||||
}
|
||||
8
modules/hm/bitwarden.nix
Normal file
8
modules/hm/bitwarden.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
home.packages =
|
||||
[ pkgs.bitwarden ] ++
|
||||
lib.optionals config.programs.rofi.enable (builtins.attrValues {
|
||||
inherit (pkgs.unstable_pkgs) rbw rofi-rbw;
|
||||
inherit (pkgs.pinentry) gnome3;
|
||||
});
|
||||
}
|
||||
1
modules/hm/blender.nix
Normal file
1
modules/hm/blender.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ pkgs, ... }: { home.packages = [ pkgs.blender ]; }
|
||||
4
modules/hm/blender_nvidia.nix
Normal file
4
modules/hm/blender_nvidia.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = [ (pkgs.blender.override { cudaSupport = true; }) ];
|
||||
}
|
||||
|
||||
11
modules/hm/bottom.nix
Normal file
11
modules/hm/bottom.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, ... }:
|
||||
let tomlGenerate = (pkgs.formats.toml { }).generate "bottom-toml";
|
||||
in {
|
||||
home.packages = [ pkgs.bottom ];
|
||||
xdg.configFile."bottom/bottom.toml".source = tomlGenerate {
|
||||
"flags" = {
|
||||
"left_legend" = true;
|
||||
"color" = "nord";
|
||||
};
|
||||
};
|
||||
}
|
||||
7
modules/hm/broot.nix
Normal file
7
modules/hm/broot.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
programs.broot = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
}
|
||||
51
modules/hm/bspwm.nix
Normal file
51
modules/hm/bspwm.nix
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
{ pkgs, lib, ... }:
|
||||
with pkgs.lib.nix-rice;
|
||||
let
|
||||
xsetroot = "${pkgs.xorg.xsetroot}/bin/xsetroot";
|
||||
monitorPages = [ "Ⅰ" "Ⅱ" "Ⅲ" "Ⅳ" "Ⅴ" "Ⅵ" "Ⅶ" "Ⅷ" "Ⅸ" "Ⅹ" ];
|
||||
monitorPagesString = lib.strings.concatStringsSep " " monitorPages;
|
||||
monitorSetupScript = pkgs.writeShellScript "monitorSetupScript" ''
|
||||
for monitor in $(bspc query -M --names); do
|
||||
bspc monitor $monitor -d ${monitorPagesString}
|
||||
done
|
||||
${pkgs.autorandr}/bin/autorandr -c || true
|
||||
systemctl --user restart polybar # Restart polybar
|
||||
systemctl --user restart kdeconnect-indicator # Restart polybar
|
||||
'';
|
||||
strPalette = palette.toRGBHex pkgs.rice.colorPalette;
|
||||
in
|
||||
{
|
||||
xsession.windowManager.bspwm = {
|
||||
enable = true;
|
||||
settings = {
|
||||
border_width = 1;
|
||||
border_radius = 8;
|
||||
window_gap = 2;
|
||||
split_ratio = 0.5;
|
||||
top_padding = 0;
|
||||
bottom_padding = 0;
|
||||
right_padding = 0;
|
||||
left_padding = 0;
|
||||
borderless_monocle = true;
|
||||
gapless_monocle = false;
|
||||
normal_border_color = strPalette.normal.blue;
|
||||
focused_border_color = strPalette.bright.red;
|
||||
};
|
||||
# monitors = builtins.foldl' (acc: monitor: acc // { ${monitor} = monitorPages; }) { } monitors;
|
||||
rules = {
|
||||
"*" = { follow = true; };
|
||||
"Zathura" = { state = "tiled"; };
|
||||
"Yad" = { state = "floating"; };
|
||||
};
|
||||
startupPrograms = [
|
||||
"${monitorSetupScript}" # Setup monitors
|
||||
"${xsetroot} -solid black -cursor_name left_ptr" # Set cursor
|
||||
"${pkgs.update-background}/bin/update-background" # Set background
|
||||
];
|
||||
};
|
||||
services = {
|
||||
network-manager-applet.enable = true;
|
||||
blueman-applet.enable = true;
|
||||
};
|
||||
home.packages = [ pkgs.blueman ];
|
||||
}
|
||||
29
modules/hm/cava.nix
Normal file
29
modules/hm/cava.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ pkgs, lib, ... }:
|
||||
let
|
||||
strPalette = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.colorPalette;
|
||||
fmtString = str: "'${str}'";
|
||||
in
|
||||
{
|
||||
home.packages = [ pkgs.cava ];
|
||||
|
||||
xdg.configFile."cava/config".text = lib.generators.toINI { } {
|
||||
general = {
|
||||
bar_width = 1;
|
||||
bar_spacing = 1;
|
||||
};
|
||||
color = {
|
||||
gradient = 1;
|
||||
gradient_count = 5;
|
||||
gradient_color_1 = fmtString strPalette.normal.red;
|
||||
gradient_color_2 = fmtString strPalette.normal.yellow;
|
||||
gradient_color_3 = fmtString strPalette.normal.white;
|
||||
gradient_color_4 = fmtString strPalette.normal.cyan;
|
||||
gradient_color_5 = fmtString strPalette.normal.blue;
|
||||
};
|
||||
smoothing = {
|
||||
gravity = 40;
|
||||
noise_reduction = 0.25;
|
||||
monstercat = 1;
|
||||
};
|
||||
};
|
||||
}
|
||||
19
modules/hm/configurations.nix
Normal file
19
modules/hm/configurations.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
editorconfig = {
|
||||
enable = true;
|
||||
settings = {
|
||||
"*" = {
|
||||
charset = "utf-8";
|
||||
end_of_line = "lf";
|
||||
indent_size = "2";
|
||||
# max_line_width = "120";
|
||||
indent_style = "space";
|
||||
trim_trailing_whitespace = "true";
|
||||
insert_final_newline = "true";
|
||||
};
|
||||
"*.py" = {
|
||||
indent_size = 4;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
modules/hm/development/cpp.nix
Normal file
9
modules/hm/development/cpp.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
home.packages =
|
||||
lib.optionals config.programs.helix.enable builtins.attrValues
|
||||
{
|
||||
inherit (pkgs) clang-tools cmake-language-server;
|
||||
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues {
|
||||
inherit (pkgs) clang-tools cmake-language-server;
|
||||
};
|
||||
}
|
||||
11
modules/hm/development/data.nix
Normal file
11
modules/hm/development/data.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ config, pkgs, lib, ... }: {
|
||||
home.packages =
|
||||
lib.optionals config.programs.helix.enable builtins.attrValues
|
||||
{
|
||||
inherit (pkgs) yaml-language-server taplo-cli;
|
||||
inherit (pkgs.nodePackages) vscode-langservers-extracted;
|
||||
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues {
|
||||
inherit (pkgs) yaml-language-server;
|
||||
inherit (pkgs.nodePackages) vscode-langservers-extracted;
|
||||
};
|
||||
}
|
||||
3
modules/hm/development/database.nix
Normal file
3
modules/hm/development/database.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = builtins.attrValues { inherit (pkgs.unstable_pkgs.jetbrains) datagrip jdk; };
|
||||
}
|
||||
14
modules/hm/development/docker.nix
Normal file
14
modules/hm/development/docker.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
home.packages =
|
||||
builtins.attrValues { inherit (pkgs) docker-compose docker-machine; }
|
||||
++ lib.optionals config.programs.helix.enable builtins.attrValues {
|
||||
inherit (pkgs.nodePackages) dockerfile-language-server-nodejs;
|
||||
};
|
||||
home.shellAliases = {
|
||||
"dkcd" = "docker-compose down";
|
||||
"dkc" = "docker-compose";
|
||||
"dkcu" = "docker-compose up";
|
||||
"dk" = "docker";
|
||||
};
|
||||
}
|
||||
|
||||
9
modules/hm/development/go.nix
Normal file
9
modules/hm/development/go.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, lib, config, ... }: {
|
||||
programs.go = {
|
||||
enable = true;
|
||||
goPath = ".go";
|
||||
};
|
||||
|
||||
home.packages = lib.optionals config.programs.helix.enable [ pkgs.gopls ]
|
||||
++ (lib.optionals config.programs.kakoune.enable [ pkgs.gopls ]);
|
||||
}
|
||||
11
modules/hm/development/javascript.nix
Normal file
11
modules/hm/development/javascript.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{ pkgs, lib, config, ... }: {
|
||||
home.packages =
|
||||
lib.optionals config.programs.helix.enable builtins.attrValues
|
||||
{
|
||||
inherit (pkgs.nodePackages) typescript-language-server;
|
||||
} ++ lib.optionals config.programs.kakoune.enable builtins.attrValues {
|
||||
inherit (pkgs.nodePackages) typescript-language-server;
|
||||
};
|
||||
programs.neovim.withNodeJs = true;
|
||||
}
|
||||
|
||||
4
modules/hm/development/kubernetes.nix
Normal file
4
modules/hm/development/kubernetes.nix
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages =
|
||||
builtins.attrValues { inherit (pkgs) awscli2 kubectl kubernetes-helm openlens; };
|
||||
}
|
||||
8
modules/hm/development/latex.nix
Normal file
8
modules/hm/development/latex.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
home.packages = [ pkgs.bibtool pkgs.texlive.combined.scheme-medium ]
|
||||
++ lib.optionals config.programs.helix.enable [ pkgs.texlab ]
|
||||
++ lib.optionals config.programs.kakoune.enable (builtins.attrValues {
|
||||
inherit (pkgs) texlab aspell;
|
||||
inherit (pkgs.aspellDicts) en en-computers en-science it;
|
||||
});
|
||||
}
|
||||
10
modules/hm/development/markdown.nix
Normal file
10
modules/hm/development/markdown.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, lib, config, ... }: {
|
||||
home.packages = [
|
||||
pkgs.pandoc
|
||||
# pkgs.pandoc-drawio-filter
|
||||
# pkgs.pandoc-imagine
|
||||
]
|
||||
++ lib.optionals config.programs.helix.enable [
|
||||
pkgs.marksman
|
||||
];
|
||||
}
|
||||
8
modules/hm/development/nix.nix
Normal file
8
modules/hm/development/nix.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, config, lib, ... }: {
|
||||
home.packages = builtins.attrValues
|
||||
{
|
||||
inherit (pkgs) nixpkgs-fmt nixfmt nix-prefetch-scripts nix-review nix-tree;
|
||||
} ++ lib.optionals config.programs.helix.enable [ pkgs.nil ]
|
||||
++ lib.optionals config.programs.kakoune.enable [ pkgs.rnix-lsp ];
|
||||
programs.neovim.plugins = [ pkgs.vimPlugins.vim-nix ];
|
||||
}
|
||||
20
modules/hm/development/python.nix
Normal file
20
modules/hm/development/python.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
let
|
||||
py = pkgs.python3;
|
||||
pyPkgs = py.pkgs;
|
||||
in
|
||||
{
|
||||
home.packages = [ py pyPkgs.black ]
|
||||
++ lib.optionals config.programs.helix.enable ([
|
||||
pyPkgs.python-lsp-server
|
||||
pyPkgs.pyls-flake8
|
||||
pyPkgs.pyls-isort
|
||||
] ++ pyPkgs.python-lsp-server.optional-dependencies.all)
|
||||
++ lib.optionals config.programs.kakoune.enable ([
|
||||
pyPkgs.python-lsp-server
|
||||
pyPkgs.pyls-flake8
|
||||
pyPkgs.pyls-isort
|
||||
] ++ pyPkgs.python-lsp-server.optional-dependencies.all);
|
||||
programs.neovim.withPython3 = true;
|
||||
}
|
||||
24
modules/hm/development/rust.nix
Normal file
24
modules/hm/development/rust.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ pkgs, lib, config, ... }: {
|
||||
home.file.".cargo/config".text = ''
|
||||
[build]
|
||||
rustc-wrapper = "${pkgs.sccache}/bin/sccache"
|
||||
'';
|
||||
home.packages = builtins.attrValues
|
||||
{
|
||||
inherit (pkgs)
|
||||
bacon cargo cargo-audit cargo-criterion cargo-deadlinks cargo-expand
|
||||
cargo-flamegraph cargo-fuzz cargo-hack cargo-hakari cargo-inspect
|
||||
cargo-modules cargo-outdated cargo-profiler cargo-release cargo-show-asm
|
||||
cargo-spellcheck cargo-tarpaulin cargo-udeps cargo-watch cargo-workspaces
|
||||
clippy rustc rustfmt;
|
||||
# cargo-about
|
||||
# cargo-auditable
|
||||
# cargo-deny
|
||||
# cargo-deps
|
||||
# cargo-feature
|
||||
|
||||
} ++ lib.optionals config.programs.helix.enable
|
||||
(builtins.attrValues { inherit (pkgs) lldb rust-analyzer; })
|
||||
++ lib.optionals config.programs.kakoune.enable
|
||||
(builtins.attrValues { inherit (pkgs) rust-analyzer; });
|
||||
}
|
||||
7
modules/hm/dircolors.nix
Normal file
7
modules/hm/dircolors.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
programs.dircolors = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
}
|
||||
8
modules/hm/direnv.nix
Normal file
8
modules/hm/direnv.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
}
|
||||
53
modules/hm/dunst.nix
Normal file
53
modules/hm/dunst.nix
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
{ pkgs, ... }:
|
||||
with pkgs.lib.nix-rice;
|
||||
let strPalette = palette.toRGBHex pkgs.rice.colorPalette;
|
||||
in {
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs) dunst;
|
||||
inherit (pkgs.rice.font.normal) package;
|
||||
};
|
||||
services.dunst = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
package = pkgs.qogir-icon-theme;
|
||||
name = "Qogir";
|
||||
};
|
||||
settings = {
|
||||
global = {
|
||||
browser = "${pkgs.xdg-utils}/bin/xdg-open";
|
||||
# corner_radius = 8;
|
||||
dmenu = "${pkgs.rofi}/bin/rofi -dmenu -p dunst:";
|
||||
follow = "keyboard";
|
||||
font = "${pkgs.rice.font.normal.name} 10";
|
||||
frame_color = strPalette.normal.blue;
|
||||
frame_width = 1;
|
||||
height = 320;
|
||||
mouse_middle_click = "context";
|
||||
notification_limit = 10;
|
||||
offset = "7x28";
|
||||
separator_color = strPalette.normal.blue;
|
||||
transparency = 100 - float.round (pkgs.rice.opacity * 100);
|
||||
width = "(0, 320)";
|
||||
};
|
||||
urgency_low = {
|
||||
inherit (strPalette) background foreground;
|
||||
timeout = 10;
|
||||
};
|
||||
urgency_normal = {
|
||||
inherit (strPalette) background foreground;
|
||||
timeout = 10;
|
||||
};
|
||||
urgency_critical = {
|
||||
inherit (strPalette) background foreground;
|
||||
frame_color = strPalette.bright.red;
|
||||
timeout = 0;
|
||||
};
|
||||
shortcuts = {
|
||||
# close = "ctrl+space";
|
||||
# close_all = "ctrl+shift+space";
|
||||
# history = "ctrl+backslash";
|
||||
# context = "ctrl+shift+period";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
modules/hm/dwarf-fortress.nix
Normal file
9
modules/hm/dwarf-fortress.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
package = with pkgs.dwarf-fortress-packages;
|
||||
dwarf-fortress-full.override {
|
||||
theme = themes.ironhand;
|
||||
enableFPS = true;
|
||||
};
|
||||
in
|
||||
{ home.packages = [ package ]; }
|
||||
1
modules/hm/easyeffects.nix
Normal file
1
modules/hm/easyeffects.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ services.easyeffects.enable = true; }
|
||||
7
modules/hm/exa.nix
Normal file
7
modules/hm/exa.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
programs.exa = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
};
|
||||
}
|
||||
|
||||
11
modules/hm/firefox.nix
Normal file
11
modules/hm/firefox.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
profiles.default = {
|
||||
settings = {
|
||||
# "gfx.webrender.all" = true;
|
||||
"browser.altClickSave" = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
modules/hm/fonts.nix
Normal file
9
modules/hm/fonts.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }: {
|
||||
fonts.fontconfig = { enable = true; };
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
dejavu_fonts noto-fonts noto-fonts-extra noto-fonts-cjk-sans font-awesome
|
||||
corefonts# Microsoft fonts
|
||||
vistafonts;
|
||||
};
|
||||
}
|
||||
8
modules/hm/fzf.nix
Normal file
8
modules/hm/fzf.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
tmux.enableShellIntegration = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
}
|
||||
126
modules/hm/git.nix
Normal file
126
modules/hm/git.nix
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
shellAliases = {
|
||||
"g" = "git";
|
||||
"ga" = "git add";
|
||||
"gaa" = "git add --all";
|
||||
"gau" = "git add --update";
|
||||
"gav" = "git add --verbose";
|
||||
"gb" = "git branch";
|
||||
"gba" = "git branch -a";
|
||||
"gbd" = "git branch -d";
|
||||
"gbD" = "git branch -D";
|
||||
"gbl" = "git blame -b -w";
|
||||
"gbnm" = "git branch --no-merged";
|
||||
"gbr" = "git branch --remote";
|
||||
"gbs" = "git bisect";
|
||||
"gbsb" = "git bisect bad";
|
||||
"gbsg" = "git bisect good";
|
||||
"gbsr" = "git bisect reset";
|
||||
"gbss" = "git bisect start";
|
||||
"gc" = "git commit -v";
|
||||
"gc!" = "git commit -v --amend";
|
||||
"gcn!" = "git commit -v --no-edit --amend";
|
||||
"gca" = "git commit -v -a";
|
||||
"gca!" = "git commit -v -a --amend";
|
||||
"gcan!" = "git commit -v -a --no-edit --amend";
|
||||
"gcans!" = "git commit -v -a -s --no-edit --amend";
|
||||
"gcas" = "git commit -a -s";
|
||||
"gcb" = "git checkout -b";
|
||||
"gcl" = "git clone --recurse-submodules";
|
||||
"gclean" = "git clean -id";
|
||||
"gpristine" = "git reset --hard && git clean -dffx";
|
||||
"gco" = "git checkout";
|
||||
"gcount" = "git shortlog -sn";
|
||||
"gcp" = "git cherry-pick";
|
||||
"gcpa" = "git cherry-pick --abort";
|
||||
"gcpc" = "git cherry-pick --continue";
|
||||
"gd" = "git diff";
|
||||
"gdtd" = "git difftool -g --dir-diff";
|
||||
"gdca" = "git diff --cached";
|
||||
"gdcw" = "git diff --cached --word-diff";
|
||||
"gdct" = "git describe --tags $(git rev-list --tags --max-count=1)";
|
||||
"gds" = "git diff --staged";
|
||||
"gdt" = "git diff-tree --no-commit-id --name-only -r";
|
||||
"gdw" = "git diff --word-diff";
|
||||
"gf" = "git fetch";
|
||||
"gfa" = "git fetch --all --prune";
|
||||
"gfg" = "git ls-files | grep";
|
||||
"gignored" = ''git ls-files -v \| grep"^[[ :lower: ]]"'';
|
||||
"glo" = "git log --oneline --decorate";
|
||||
"glols" =
|
||||
"git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --stat";
|
||||
"glola" =
|
||||
"git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --all";
|
||||
"glog" = "git log --oneline --decorate --graph";
|
||||
"gloga" = "git log --oneline --decorate --graph --all";
|
||||
"gm" = "git merge";
|
||||
"gma" = "git merge --abort";
|
||||
"gp" = "git push";
|
||||
"gpa" = "git push --all";
|
||||
"gpf!" = "git push --force";
|
||||
"gpoat" = "git push origin --all && git push origin --tags";
|
||||
"gpu" = "git push upstream";
|
||||
"gpv" = "git push -v";
|
||||
"gr" = "git remote";
|
||||
"gra" = "git remote add";
|
||||
"grb" = "git rebase";
|
||||
"grba" = "git rebase --abort";
|
||||
"grbc" = "git rebase --continue";
|
||||
"grbi" = "git rebase -i";
|
||||
"grev" = "git revert";
|
||||
"grh" = "git reset";
|
||||
"grhh" = "git reset --hard";
|
||||
"grm" = "git rm";
|
||||
"grmc" = "git rm --cached";
|
||||
"grs" = "git restore";
|
||||
"grv" = "git remote -v";
|
||||
"gss" = "git status -s";
|
||||
"gst" = "git status";
|
||||
"gsta" = "git stash push";
|
||||
"gstas" = "git stash save";
|
||||
"gstaa" = "git stash apply";
|
||||
"gstc" = "git stash clear";
|
||||
"gstd" = "git stash drop";
|
||||
"gstl" = "git stash list";
|
||||
"gstp" = "git stash pop";
|
||||
"gsts" = "git stash show --text";
|
||||
"gup" = "git pull --rebase";
|
||||
"gupv" = "git pull --rebase -v";
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userName = "Filippo Berto";
|
||||
userEmail = "berto.f@protonmail.com";
|
||||
# signing = {
|
||||
# key = "berto.f@protonmail.com";
|
||||
# signByDefault = true;
|
||||
# };
|
||||
extraConfig = {
|
||||
"add.interactive".useBuiltin = false;
|
||||
commit.gpgSign = true;
|
||||
core.editor = "hx";
|
||||
credential.helper = "cache --timeout=3600 ";
|
||||
delta.navigate = true;
|
||||
# delta.side-by-side = true;
|
||||
diff.colorMoved = "default";
|
||||
diff.guitool = "meld";
|
||||
diff.tool = "meld";
|
||||
# init.defaultBranch = "main";
|
||||
merge.conflictstyle = "diff3";
|
||||
merge.guitool = "meld";
|
||||
merge.tool = "meld";
|
||||
pull.rebase = true;
|
||||
rebase.autoStash = true;
|
||||
user.signingKey = "berto.f@protonmail.com";
|
||||
};
|
||||
lfs.enable = true;
|
||||
delta.enable = true;
|
||||
};
|
||||
programs.bash.shellAliases = shellAliases;
|
||||
programs.zsh.shellAliases = shellAliases;
|
||||
home.packages =
|
||||
builtins.attrValues { inherit (pkgs) gh git-secret glab meld; };
|
||||
}
|
||||
32
modules/hm/gnome_shell.nix
Normal file
32
modules/hm/gnome_shell.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
gnomeExtensions = with pkgs.gnomeExtensions; [
|
||||
appindicator
|
||||
aylurs-widgets
|
||||
babar
|
||||
caffeine
|
||||
dash-to-dock
|
||||
dash-to-panel
|
||||
# dash-to-plank
|
||||
# devbar
|
||||
dock-from-dash
|
||||
# espresso
|
||||
# focus
|
||||
freon
|
||||
gamemode
|
||||
# git
|
||||
gtile
|
||||
# jiggle
|
||||
just-perfection
|
||||
# keyman
|
||||
spotify-tray
|
||||
topiconsfix
|
||||
# tray-icons
|
||||
tray-icons-reloaded
|
||||
unite
|
||||
user-themes
|
||||
# vitals
|
||||
];
|
||||
in
|
||||
{ home.packages = [ pkgs.gnome.gnome-tweaks ] ++ gnomeExtensions; }
|
||||
12
modules/hm/gpg.nix
Normal file
12
modules/hm/gpg.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
settings = { };
|
||||
};
|
||||
|
||||
services.gpg-agent = {
|
||||
enable = true;
|
||||
defaultCacheTtl = 600;
|
||||
# extraConfig = "allow-loopback-pinentry";
|
||||
};
|
||||
}
|
||||
23
modules/hm/grobi.nix
Normal file
23
modules/hm/grobi.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
services.grobi = {
|
||||
enable = true;
|
||||
rules = [
|
||||
{
|
||||
name = "Nvidia2screens";
|
||||
outputs_connected = [ "HDMI-0" "eDP-1-1" ];
|
||||
configure_column = [ "HDMI-0" "eDP-1-1" ];
|
||||
primary = "HDMI-0";
|
||||
}
|
||||
{
|
||||
name = "FallbackIntel";
|
||||
outputs_connected = [ "eDP1" ];
|
||||
configure_single = "eDP1";
|
||||
}
|
||||
{
|
||||
name = "FallbackNvidia";
|
||||
outputs_connected = [ "eDP-1-1" ];
|
||||
configure_single = "eDP-1-1";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
29
modules/hm/gtk_theme.nix
Normal file
29
modules/hm/gtk_theme.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ pkgs, ... }: {
|
||||
gtk = with pkgs.rice; {
|
||||
enable = true;
|
||||
font = font.normal;
|
||||
iconTheme = {
|
||||
package = pkgs.qogir-icon-theme;
|
||||
name = "Qogir-dark";
|
||||
};
|
||||
theme = {
|
||||
package = pkgs.arc-theme;
|
||||
name = "Arc-Dark";
|
||||
};
|
||||
};
|
||||
|
||||
qt = {
|
||||
enable = true;
|
||||
platformTheme = "gtk";
|
||||
};
|
||||
|
||||
home = {
|
||||
pointerCursor = {
|
||||
package = pkgs.qogir-icon-theme;
|
||||
name = "Qogir";
|
||||
# size = 64;
|
||||
# x11.enable = true;
|
||||
gtk.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
15
modules/hm/heif.nix
Normal file
15
modules/hm/heif.nix
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{ pkgs, ... }:
|
||||
|
||||
let thumbnailer = "${pkgs.libheif.bin}/bin/heif-thumbnailer";
|
||||
in {
|
||||
# home.packages = [
|
||||
# pkgs.libheif.bin
|
||||
# ];
|
||||
|
||||
xdg.dataFile."thumbnailers/heic.thumbnailer".text = ''
|
||||
[Thumbnailer Entry]
|
||||
TryExec=${thumbnailer}
|
||||
Exec=${thumbnailer} -s %s %i %o
|
||||
MimeType=image/heif;image/heic
|
||||
'';
|
||||
}
|
||||
126
modules/hm/helix.nix
Normal file
126
modules/hm/helix.nix
Normal file
|
|
@ -0,0 +1,126 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.bash.shellAliases = { x = "hx"; };
|
||||
programs.zsh.shellAliases = { x = "hx"; };
|
||||
home.sessionVariables = {
|
||||
EDITOR = "hx";
|
||||
VISUAL = "hx";
|
||||
};
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs) nil; # Nix language server
|
||||
# inherit desktopItem;
|
||||
};
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
package = pkgs.unstable_pkgs.helix;
|
||||
languages.language = [
|
||||
{
|
||||
name = "nix";
|
||||
config = { nil.formatting.command = [ "nixpkgs-fmt" ]; };
|
||||
}
|
||||
{
|
||||
name = "latex";
|
||||
config = {
|
||||
texlab.formatterLineLength = 0;
|
||||
texlab.bibtexFormatter = "latexindent";
|
||||
texlab.latexindent.modifyLineBreaks = false;
|
||||
# texlab.chktex.onOpenAndSave = true;
|
||||
texlab.chktex.onEdit = true;
|
||||
};
|
||||
}
|
||||
];
|
||||
settings = {
|
||||
theme = "nightfox";
|
||||
editor = {
|
||||
lsp.display-messages = true;
|
||||
lsp.display-inlay-hints = true;
|
||||
scrolloff = 5;
|
||||
soft-wrap.enable = true;
|
||||
true-color = true;
|
||||
};
|
||||
keys.normal = {
|
||||
"C-A-l" = ":format";
|
||||
"A-r" = ":reload";
|
||||
"C-A-r" = ":reload-all";
|
||||
};
|
||||
};
|
||||
themes =
|
||||
let
|
||||
transparent = "none";
|
||||
gray = "#665c54";
|
||||
dark-gray = "#3c3836";
|
||||
white = "#fbf1c7";
|
||||
black = "#282828";
|
||||
red = "#fb4934";
|
||||
green = "#b8bb26";
|
||||
yellow = "#fabd2f";
|
||||
orange = "#fe8019";
|
||||
blue = "#83a598";
|
||||
magenta = "#d3869b";
|
||||
cyan = "#8ec07c";
|
||||
in
|
||||
{
|
||||
base16 = {
|
||||
"ui.menu" = transparent;
|
||||
"ui.menu.selected" = { modifiers = [ "reversed" ]; };
|
||||
"ui.linenr" = {
|
||||
fg = gray;
|
||||
bg = dark-gray;
|
||||
};
|
||||
"ui.popup" = { modifiers = [ "reversed" ]; };
|
||||
"ui.linenr.selected" = {
|
||||
fg = white;
|
||||
bg = black;
|
||||
modifiers = [ "bold" ];
|
||||
};
|
||||
"ui.selection" = {
|
||||
fg = black;
|
||||
bg = blue;
|
||||
};
|
||||
"ui.selection.primary" = { modifiers = [ "reversed" ]; };
|
||||
"comment" = { fg = gray; };
|
||||
"ui.statusline" = {
|
||||
fg = white;
|
||||
bg = dark-gray;
|
||||
};
|
||||
"ui.statusline.inactive" = {
|
||||
fg = dark-gray;
|
||||
bg = white;
|
||||
};
|
||||
"ui.help" = {
|
||||
fg = dark-gray;
|
||||
bg = white;
|
||||
};
|
||||
"ui.cursor" = { modifiers = [ "reversed" ]; };
|
||||
"variable" = red;
|
||||
"variable.builtin" = orange;
|
||||
"constant.numeric" = orange;
|
||||
"constant" = orange;
|
||||
"attributes" = yellow;
|
||||
"type" = yellow;
|
||||
"ui.cursor.match" = {
|
||||
fg = yellow;
|
||||
modifiers = [ "underlined" ];
|
||||
};
|
||||
"string" = green;
|
||||
"variable.other.member" = red;
|
||||
"constant.character.escape" = cyan;
|
||||
"function" = blue;
|
||||
"constructor" = blue;
|
||||
"special" = blue;
|
||||
"keyword" = magenta;
|
||||
"label" = magenta;
|
||||
"namespace" = blue;
|
||||
"diff.plus" = green;
|
||||
"diff.delta" = yellow;
|
||||
"diff.minus" = red;
|
||||
"diagnostic" = { modifiers = [ "underlined" ]; };
|
||||
"ui.gutter" = { bg = black; };
|
||||
"info" = blue;
|
||||
"hint" = dark-gray;
|
||||
"debug" = dark-gray;
|
||||
"warning" = yellow;
|
||||
"error" = red;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
1
modules/hm/info.nix
Normal file
1
modules/hm/info.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ programs.info = { enable = true; }; }
|
||||
1
modules/hm/java.nix
Normal file
1
modules/hm/java.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ programs.java.enable = true; }
|
||||
17
modules/hm/joystickwake.nix
Normal file
17
modules/hm/joystickwake.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ pkgs, ... }:
|
||||
let joystickwakeCmd = "${pkgs.joystickwake}/bin/joystickwake";
|
||||
in {
|
||||
systemd.user.services."joystickwake" = {
|
||||
Unit = {
|
||||
Description = "Keep lockscreen from activating";
|
||||
After = [ "graphical-session.target" ];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
};
|
||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStart = joystickwakeCmd;
|
||||
Environment = [ "DISPLAY=:0" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
1
modules/hm/jq.nix
Normal file
1
modules/hm/jq.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ programs.jq = { enable = true; }; }
|
||||
392
modules/hm/kakoune.nix
Normal file
392
modules/hm/kakoune.nix
Normal file
|
|
@ -0,0 +1,392 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
themeBuilder = palette:
|
||||
with palette; ''
|
||||
set-face global value rgb:${normal.magenta},default
|
||||
set-face global type rgb:${bright.white},default
|
||||
set-face global identifier rgb:${normal.cyan},default
|
||||
set-face global string rgb:${normal.green},default
|
||||
set-face global error rgb:${normal.red},default
|
||||
set-face global keyword rgb:${normal.blue},default
|
||||
set-face global operator rgb:${normal.blue},default
|
||||
set-face global attribute rgb:${bright.blue},default
|
||||
set-face global comment rgb:${bright.blue},default
|
||||
set-face global meta rgb:${normal.yellow},default
|
||||
set-face global Default rgb:${normal.white},default
|
||||
set-face global PrimarySelection rgb:${normal.black},rgb:${dark.yellow}
|
||||
set-face global SecondarySelection rgb:${normal.black},rgb:${dark.white}
|
||||
set-face global PrimaryCursor rgb:${normal.black},rgb:${normal.yellow}
|
||||
set-face global SecondaryCursor rgb:${normal.black},rgb:${normal.white}
|
||||
set-face global MenuForeground rgb:${normal.white},rgb:${bright.black}
|
||||
set-face global MenuBackground default,rgb:${normal.black}
|
||||
set-face global MenuInfo default,rgb:${normal.black}
|
||||
set-face global Information rgb:${dark.black},rgb:${normal.cyan}
|
||||
set-face global StatusLine rgb:${normal.white},rgb:${normal.black}
|
||||
set-face global StatusLineMode rgb:${normal.blue},rgb:${normal.black}
|
||||
set-face global StatusLineInfo rgb:${normal.blue},rgb:${normal.black}
|
||||
set-face global StatusLineValue rgb:${normal.blue},rgb:${normal.black}
|
||||
set-face global StatusCursor rgb:${dark.black},rgb:${normal.yellow}
|
||||
set-face global Prompt rgb:${normal.cyan},rgb:${normal.black}
|
||||
set-face global BufferPadding default,default
|
||||
'';
|
||||
|
||||
desktopItem = pkgs.makeDesktopItem {
|
||||
name = "Kakoune";
|
||||
exec = "kak %F";
|
||||
icon = "kakoune";
|
||||
desktopName = "Kakoune";
|
||||
comment = "Kakoune text editor";
|
||||
terminal = true;
|
||||
categories = [ "Development" ];
|
||||
mimeTypes = [
|
||||
"text/english"
|
||||
"text/plain"
|
||||
"text/x-makefile"
|
||||
"text/x-c++hdr"
|
||||
"text/x-c++src"
|
||||
"text/x-chdr"
|
||||
"text/x-csrc"
|
||||
"text/x-java"
|
||||
"text/x-moc"
|
||||
"text/x-pascal"
|
||||
"text/x-tcl"
|
||||
"text/x-tex"
|
||||
"application/x-shellscript"
|
||||
"text/x-c"
|
||||
"text/x-c++"
|
||||
];
|
||||
};
|
||||
packages = builtins.attrValues {
|
||||
inherit (pkgs) editorconfig-core-c;
|
||||
inherit desktopItem;
|
||||
};
|
||||
|
||||
in
|
||||
{
|
||||
programs.bash.shellAliases = { k = "kak"; };
|
||||
programs.zsh.shellAliases = { k = "kak"; };
|
||||
home.packages = packages;
|
||||
programs.kakoune = {
|
||||
enable = true;
|
||||
config = {
|
||||
colorScheme = "nord";
|
||||
tabStop = 2;
|
||||
indentWidth = 2;
|
||||
alignWithTabs = true;
|
||||
scrollOff = {
|
||||
lines = 5;
|
||||
columns = 3;
|
||||
};
|
||||
ui = {
|
||||
setTitle = true;
|
||||
changeColors = true;
|
||||
enableMouse = true;
|
||||
};
|
||||
wrapLines = {
|
||||
enable = true;
|
||||
word = true;
|
||||
};
|
||||
numberLines = {
|
||||
enable = true;
|
||||
highlightCursor = true;
|
||||
};
|
||||
keyMappings = [
|
||||
{
|
||||
mode = "normal";
|
||||
docstring = "Edit file";
|
||||
key = "<c-e>";
|
||||
effect = ":edit<space>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Code actions";
|
||||
key = "a";
|
||||
effect = ":lsp-code-actions<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Comment block";
|
||||
key = "b";
|
||||
effect = ":comment-block<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Comment line";
|
||||
key = "l";
|
||||
effect = ":comment-line<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Copy to clipboard";
|
||||
key = "y";
|
||||
effect = "<a-|>${pkgs.xclip}/bin/xclip -i -selection clipboard<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Format code with formatter";
|
||||
key = "f";
|
||||
effect = ":format<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Format code with LSP";
|
||||
key = "F";
|
||||
effect = ":lsp-formatting-sync<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Jump to definition";
|
||||
key = "d";
|
||||
effect = ":lsp-definition<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Rename object";
|
||||
key = "r";
|
||||
effect = ":lsp-rename-prompt<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Jump to type definition";
|
||||
key = "t";
|
||||
effect = ":lsp-type-definition<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "List project diagnostics";
|
||||
key = "i";
|
||||
effect = ":lsp-diagnostics<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Paste from clipboard (after)";
|
||||
key = "P";
|
||||
effect = "<a-!>${pkgs.xclip}/bin/xclip -selection clipboard -o<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Paste from clipboard (before)";
|
||||
key = "p";
|
||||
effect = "!${pkgs.xclip}/bin/xclip -selection clipboard -o<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Show hover info";
|
||||
key = "q";
|
||||
effect = ":lsp-hover<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Spellcheck English";
|
||||
key = "S";
|
||||
effect = ":spell en<ret>";
|
||||
}
|
||||
{
|
||||
mode = "user";
|
||||
docstring = "Spellcheck";
|
||||
key = "s";
|
||||
effect = ":spell ";
|
||||
}
|
||||
{
|
||||
mode = "normal";
|
||||
docstring = "Try next snippet placeholder";
|
||||
key = "<c-n>";
|
||||
effect = "<a-;>: insert-c-n<ret>";
|
||||
}
|
||||
# { mode = "normal"; docstring = "Search"; key = "/"; effect = "/(?i)"; }
|
||||
# { mode = "normal"; docstring = "Reverse search"; key = "<a-/>"; effect = "<a-/>(?i)"; }
|
||||
];
|
||||
hooks = [
|
||||
{
|
||||
name = "BufCreate";
|
||||
option = ".*";
|
||||
commands = "editorconfig-load";
|
||||
}
|
||||
# { name = "ModuleLoaded"; option = "auto-pairs"; commands = "auto-pairs-enable"; }
|
||||
{
|
||||
name = "ModuleLoaded";
|
||||
option = "powerline";
|
||||
commands = "powerline-enable; powerline-start";
|
||||
}
|
||||
{
|
||||
name = "BufSetOption";
|
||||
option = "filetype=latex";
|
||||
commands = "set-option buffer formatcmd latexindent";
|
||||
}
|
||||
{
|
||||
name = "BufSetOption";
|
||||
option = "filetype=python";
|
||||
commands = "set-option buffer formatcmd 'black -'";
|
||||
}
|
||||
{
|
||||
name = "BufSetOption";
|
||||
option = "filetype=(markdown|html|json|yaml|css|scss|less)";
|
||||
commands = "set-option buffer formatcmd prettier";
|
||||
}
|
||||
{
|
||||
name = "BufSetOption";
|
||||
option = "filetype=rust";
|
||||
commands = "set-option buffer formatcmd 'rustfmt'";
|
||||
}
|
||||
{
|
||||
name = "BufSetOption";
|
||||
option = "filetype=sh";
|
||||
commands = "set-option buffer formatcmd 'rustfmt'";
|
||||
}
|
||||
];
|
||||
# TODO add more formatters from https://github.com/mawww/kakoune/wiki/Format
|
||||
};
|
||||
extraConfig = builtins.concatStringsSep "\n" [
|
||||
"# Custom commands"
|
||||
"add-highlighter global/ regex \\h+$ 0:Error # Highlight trailing spaces"
|
||||
"eval %sh{kak-lsp --kakoune -s $kak_session}"
|
||||
"lsp-enable"
|
||||
''
|
||||
def -hidden insert-c-n %{
|
||||
try %{
|
||||
lsp-snippets-select-next-placeholders
|
||||
exec '<a-;>d'
|
||||
} catch %{
|
||||
exec -with-hooks '<c-n>'
|
||||
}
|
||||
}
|
||||
''
|
||||
"require-module powerline"
|
||||
"require-module connect-broot"
|
||||
"require-module connect-lf"
|
||||
"require-module connect-rofi"
|
||||
];
|
||||
plugins = with pkgs.kakounePlugins; [
|
||||
prelude-kak
|
||||
kak-lsp
|
||||
auto-pairs-kak
|
||||
powerline-kak
|
||||
connect-kak
|
||||
];
|
||||
};
|
||||
|
||||
# THEME FILE
|
||||
xdg.configFile."kak/colors/nord.kak".text = themeBuilder
|
||||
(pkgs.lib.nix-rice.palette.toRgbShortHex pkgs.rice.colorPalette);
|
||||
|
||||
xdg.configFile."kak-lsp/kak-lsp.toml".text = ''
|
||||
snippet_support = false
|
||||
verbosity = 2
|
||||
[server]
|
||||
timeout = 1800 # seconds = 30 minutes
|
||||
|
||||
[language.c_cpp]
|
||||
filetypes = ["c", "cpp"]
|
||||
roots = ["compile_commands.json", ".clangd"]
|
||||
command = "clangd"
|
||||
offset_encoding = "utf-8"
|
||||
|
||||
[language.json]
|
||||
filetypes = ["json"]
|
||||
roots = ["package.json"]
|
||||
command = "vscode-json-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.yaml]
|
||||
filetypes = ["yaml"]
|
||||
roots = [".git"]
|
||||
command = "yaml-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.yaml.settings]
|
||||
# See https://github.com/redhat-developer/yaml-language-server#language-server-settings
|
||||
# Defaults are at https://github.com/redhat-developer/yaml-language-server/blob/master/src/yamlSettings.ts
|
||||
yaml.format.enable = true
|
||||
|
||||
[language.go]
|
||||
filetypes = ["go"]
|
||||
roots = ["Gopkg.toml", "go.mod", ".git", ".hg"]
|
||||
command = "gopls"
|
||||
offset_encoding = "utf-8"
|
||||
settings_section = "gopls"
|
||||
|
||||
[language.go.settings.gopls]
|
||||
# See https://github.com/golang/tools/blob/master/gopls/doc/settings.md
|
||||
# "build.buildFlags" = []
|
||||
|
||||
[language.html]
|
||||
filetypes = ["html"]
|
||||
roots = ["package.json"]
|
||||
command = "vscode-html-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.css]
|
||||
filetypes = ["css"]
|
||||
roots = ["package.json", ".git"]
|
||||
command = "vscode-css-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.less]
|
||||
filetypes = ["less"]
|
||||
roots = ["package.json", ".git"]
|
||||
command = "vscode-css-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.scss]
|
||||
filetypes = ["scss"]
|
||||
roots = ["package.json", ".git"]
|
||||
command = "vscode-css-language-server"
|
||||
args = ["--stdio"]
|
||||
|
||||
[language.javascript]
|
||||
filetypes = ["javascript"]
|
||||
roots = [".flowconfig"]
|
||||
command = "flow"
|
||||
args = ["lsp"]
|
||||
|
||||
[language.latex]
|
||||
filetypes = ["latex"]
|
||||
roots = [".git"]
|
||||
command = "texlab"
|
||||
settings_section = "texlab"
|
||||
|
||||
[language.latex.settings.texlab]
|
||||
# See https://github.com/latex-lsp/texlab/blob/master/src/options.rs
|
||||
# bibtexFormatter = "texlab"
|
||||
|
||||
[language.nix]
|
||||
filetypes = ["nix"]
|
||||
roots = ["flake.nix", "shell.nix", ".git"]
|
||||
command = "rnix-lsp"
|
||||
|
||||
[language.python]
|
||||
filetypes = ["python"]
|
||||
roots = ["requirements.txt", "setup.py", ".git", ".hg"]
|
||||
command = "pylsp"
|
||||
offset_encoding = "utf-8"
|
||||
|
||||
[language.python.settings]
|
||||
# See https://github.com/palantir/python-language-server#configuration
|
||||
# and https://github.com/palantir/python-language-server/blob/develop/vscode-client/package.json
|
||||
# "pyls.configurationSources" = ["flake8"]
|
||||
|
||||
[language.rust]
|
||||
filetypes = ["rust"]
|
||||
roots = ["Cargo.toml"]
|
||||
command = "rust-analyzer"
|
||||
settings_section = "rust-analyzer"
|
||||
|
||||
[language.rust.settings.rust-analyzer]
|
||||
hoverActions.enable = false # kak-lsp doesn't support this at the moment
|
||||
# cargo.features = []
|
||||
# See https://rust-analyzer.github.io/manual.html#configuration
|
||||
# If you get 'unresolved proc macro' warnings, you have two options
|
||||
# 1. The safe choice is two disable the warning:
|
||||
diagnostics.disabled = ["unresolved-proc-macro"]
|
||||
# 2. Or you can opt-in for proc macro support
|
||||
procMacro.enable = true
|
||||
cargo.loadOutDirsFromCheck = true
|
||||
# See https://github.com/rust-analyzer/rust-analyzer/issues/6448
|
||||
|
||||
[language.bash]
|
||||
filetypes = ["sh"]
|
||||
roots = [".git", ".hg"]
|
||||
command = "bash-language-server"
|
||||
args = ["start"]
|
||||
'';
|
||||
}
|
||||
6
modules/hm/kdeconnect.nix
Normal file
6
modules/hm/kdeconnect.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
services.kdeconnect = {
|
||||
enable = true;
|
||||
indicator = true;
|
||||
};
|
||||
}
|
||||
13
modules/hm/keepassxc.nix
Normal file
13
modules/hm/keepassxc.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ pkgs, ... }: {
|
||||
config.systemd.user.services.keepassxc = {
|
||||
Unit = {
|
||||
Description = "KeePassXC password manager";
|
||||
After = [ "graphical-session-pre.target" ];
|
||||
Partof = [ "graphical-session.target" ];
|
||||
};
|
||||
|
||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
||||
|
||||
Service = { ExecStart = "${pkgs.keepassxc}/bin/keepassxc"; };
|
||||
};
|
||||
}
|
||||
10
modules/hm/keychain.nix
Normal file
10
modules/hm/keychain.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
programs.keychain = {
|
||||
enable = true;
|
||||
keys = [ "id_ed25519" ];
|
||||
agents = [ "gpg" "ssh" ];
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
enableXsessionIntegration = true;
|
||||
};
|
||||
}
|
||||
1
modules/hm/kicad.nix
Normal file
1
modules/hm/kicad.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ pkgs, ... }: { home.packages = [ pkgs.kicad ]; }
|
||||
33
modules/hm/kitty.nix
Normal file
33
modules/hm/kitty.nix
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
strPalette = pkgs.lib.nix-rice.palette.toRgbHex {
|
||||
inherit (pkgs.rice.colorPalette)
|
||||
background foreground color0 color1 color2 color3 color4 color5 color6
|
||||
color7 color8 color9 color10 color11 color12 color13 color14 color15;
|
||||
};
|
||||
in
|
||||
{
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
settings = {
|
||||
scrollback_lines = 10000;
|
||||
enable_audio_bell = false;
|
||||
visual_bell_duration = toString 0.1;
|
||||
update_check_interval = 0;
|
||||
background_opacity = toString pkgs.rice.opacity;
|
||||
close_on_child_death = "yes";
|
||||
clipboard_control =
|
||||
"write-clipboard write-primary read-clipboard read-primary";
|
||||
disable_ligatures = "never";
|
||||
editor = "kak";
|
||||
} // strPalette;
|
||||
keybindings = {
|
||||
"ctrl+shift+t" = "new_tab_with_cwd";
|
||||
"ctrl+shift+enter" = "new_window_with_cwd";
|
||||
"ctrl+shift+n" = "new_os_window_with_cwd";
|
||||
"ctrl+shift+up" = "previous_window";
|
||||
"ctrl+shift+down" = "next_window";
|
||||
};
|
||||
font = pkgs.rice.font.monospace;
|
||||
};
|
||||
}
|
||||
442
modules/hm/lf.nix
Normal file
442
modules/hm/lf.nix
Normal file
|
|
@ -0,0 +1,442 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
lf_kitty_cleaner = pkgs.writeShellScript "lf_kitty_cleaner" ''
|
||||
kitty +icat --clear --silent --transfer-mode file
|
||||
'';
|
||||
lf_kitty_preview = pkgs.writeShellScript "lf_kitty_preview" ''
|
||||
file=$1
|
||||
w=$2
|
||||
h=$3
|
||||
x=$4
|
||||
y=$5
|
||||
|
||||
if [[ "$( file -Lb --mime-type "$file")" =~ ^image ]]; then
|
||||
kitty +icat --silent --transfer-mode file --place "''${w}x''${h}@''${x}x''${y}" "$file"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
${pkgs.pistol}/bin/pistol "$file"
|
||||
'';
|
||||
in
|
||||
{
|
||||
programs.lf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
dircounts = true;
|
||||
icons = true;
|
||||
# mouse = true;
|
||||
number = true;
|
||||
# scrollof = 3;
|
||||
hidden = true;
|
||||
tabstop = 2;
|
||||
};
|
||||
previewer = {
|
||||
source = lf_kitty_preview;
|
||||
# keybinding = "i";
|
||||
};
|
||||
keybindings = { "<c-f>" = "$EDITOR $(fzf)"; };
|
||||
commands = {
|
||||
"z" = ''
|
||||
''${{
|
||||
result="$(zoxide query --exclude "$PWD" -- "$@")"
|
||||
lf -remote "send $id cd '$result'"
|
||||
}}'';
|
||||
"zi" = ''
|
||||
''${{
|
||||
result="$(zoxide query -i -- "$@")"
|
||||
lf -remote "send $id cd '$result'"
|
||||
}}'';
|
||||
"extract" = ''
|
||||
''${{
|
||||
set -f
|
||||
case $f in
|
||||
*.tar.bz|*.tar.bz2|*.tbz|*.tbz2) tar xjvf $f;;
|
||||
*.tar.gz|*.tgz) tar xzvf $f;;
|
||||
*.tar.xz|*.txz) tar xJvf $f;;
|
||||
*.zip) unzip $f;;
|
||||
*.rar) unrar x $f;;
|
||||
*.7z) 7z x $f;;
|
||||
esac
|
||||
}}'';
|
||||
"tar" = ''
|
||||
''${{
|
||||
set -f
|
||||
mkdir $1
|
||||
cp -r $fx $1
|
||||
tar czf $1.tar.gz $1
|
||||
rm -rf $1
|
||||
}}'';
|
||||
"zip" = ''
|
||||
''${{
|
||||
set -f
|
||||
mkdir $1
|
||||
cp -r $fx $1
|
||||
zip -r $1.zip $1
|
||||
rm -rf $1
|
||||
}}'';
|
||||
};
|
||||
extraConfig = ''
|
||||
set cleaner ${lf_kitty_cleaner}
|
||||
'';
|
||||
};
|
||||
|
||||
xdg.configFile."lf/icons".text = ''
|
||||
# vim:ft=conf
|
||||
|
||||
# These examples require Nerd Fonts or a compatible font to be used.
|
||||
# See https://www.nerdfonts.com for more information.
|
||||
|
||||
# default values from lf (with matching order)
|
||||
# ln l # LINK
|
||||
# or l # ORPHAN
|
||||
# tw t # STICKY_OTHER_WRITABLE
|
||||
# ow d # OTHER_WRITABLE
|
||||
# st t # STICKY
|
||||
# di d # DIR
|
||||
# pi p # FIFO
|
||||
# so s # SOCK
|
||||
# bd b # BLK
|
||||
# cd c # CHR
|
||||
# su u # SETUID
|
||||
# sg g # SETGID
|
||||
# ex x # EXEC
|
||||
# fi - # FILE
|
||||
|
||||
# file types (with matching order)
|
||||
ln # LINK
|
||||
or # ORPHAN
|
||||
tw t # STICKY_OTHER_WRITABLE
|
||||
ow # OTHER_WRITABLE
|
||||
st t # STICKY
|
||||
di # DIR
|
||||
pi p # FIFO
|
||||
so s # SOCK
|
||||
bd b # BLK
|
||||
cd c # CHR
|
||||
su u # SETUID
|
||||
sg g # SETGID
|
||||
ex # EXEC
|
||||
fi # FILE
|
||||
|
||||
# file extensions (vim-devicons)
|
||||
*.styl
|
||||
*.sass
|
||||
*.scss
|
||||
*.htm
|
||||
*.html
|
||||
*.slim
|
||||
*.haml
|
||||
*.ejs
|
||||
*.css
|
||||
*.less
|
||||
*.md
|
||||
*.mdx
|
||||
*.markdown
|
||||
*.rmd
|
||||
*.json
|
||||
*.webmanifest
|
||||
*.js
|
||||
*.mjs
|
||||
*.jsx
|
||||
*.rb
|
||||
*.gemspec
|
||||
*.rake
|
||||
*.php
|
||||
*.py
|
||||
*.pyc
|
||||
*.pyo
|
||||
*.pyd
|
||||
*.coffee
|
||||
*.mustache
|
||||
*.hbs
|
||||
*.conf
|
||||
*.ini
|
||||
*.yml
|
||||
*.yaml
|
||||
*.toml
|
||||
*.bat
|
||||
*.mk
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.bmp
|
||||
*.png
|
||||
*.webp
|
||||
*.gif
|
||||
*.ico
|
||||
*.twig
|
||||
*.cpp
|
||||
*.c++
|
||||
*.cxx
|
||||
*.cc
|
||||
*.cp
|
||||
*.c
|
||||
*.cs
|
||||
*.h
|
||||
*.hh
|
||||
*.hpp
|
||||
*.hxx
|
||||
*.hs
|
||||
*.lhs
|
||||
*.nix
|
||||
*.lua
|
||||
*.java
|
||||
*.sh
|
||||
*.fish
|
||||
*.bash
|
||||
*.zsh
|
||||
*.ksh
|
||||
*.csh
|
||||
*.awk
|
||||
*.ps1
|
||||
*.ml λ
|
||||
*.mli λ
|
||||
*.diff
|
||||
*.db
|
||||
*.sql
|
||||
*.dump
|
||||
*.clj
|
||||
*.cljc
|
||||
*.cljs
|
||||
*.edn
|
||||
*.scala
|
||||
*.go
|
||||
*.dart
|
||||
*.xul
|
||||
*.sln
|
||||
*.suo
|
||||
*.pl
|
||||
*.pm
|
||||
*.t
|
||||
*.rss
|
||||
'*.f#'
|
||||
*.fsscript
|
||||
*.fsx
|
||||
*.fs
|
||||
*.fsi
|
||||
*.rs
|
||||
*.rlib
|
||||
*.d
|
||||
*.erl
|
||||
*.hrl
|
||||
*.ex
|
||||
*.exs
|
||||
*.eex
|
||||
*.leex
|
||||
*.heex
|
||||
*.vim
|
||||
*.ai
|
||||
*.psd
|
||||
*.psb
|
||||
*.ts
|
||||
*.tsx
|
||||
*.jl
|
||||
*.pp
|
||||
*.vue ﵂
|
||||
*.elm
|
||||
*.swift
|
||||
*.xcplayground
|
||||
*.tex ﭨ
|
||||
*.r ﳒ
|
||||
*.rproj 鉶
|
||||
*.sol ﲹ
|
||||
*.pem
|
||||
|
||||
# file names (vim-devicons) (case-insensitive not supported in lf)
|
||||
*gruntfile.coffee
|
||||
*gruntfile.js
|
||||
*gruntfile.ls
|
||||
*gulpfile.coffee
|
||||
*gulpfile.js
|
||||
*gulpfile.ls
|
||||
*mix.lock
|
||||
*dropbox
|
||||
*.ds_store
|
||||
*.gitconfig
|
||||
*.gitignore
|
||||
*.gitattributes
|
||||
*.gitlab-ci.yml
|
||||
*.bashrc
|
||||
*.zshrc
|
||||
*.zshenv
|
||||
*.zprofile
|
||||
*.vimrc
|
||||
*.gvimrc
|
||||
*_vimrc
|
||||
*_gvimrc
|
||||
*.bashprofile
|
||||
*favicon.ico
|
||||
*license
|
||||
*node_modules
|
||||
*react.jsx
|
||||
*procfile
|
||||
*dockerfile
|
||||
*docker-compose.yml
|
||||
*rakefile
|
||||
*config.ru
|
||||
*gemfile
|
||||
*makefile
|
||||
*cmakelists.txt
|
||||
*robots.txt ﮧ
|
||||
|
||||
# file names (case-sensitive adaptations)
|
||||
*Gruntfile.coffee
|
||||
*Gruntfile.js
|
||||
*Gruntfile.ls
|
||||
*Gulpfile.coffee
|
||||
*Gulpfile.js
|
||||
*Gulpfile.ls
|
||||
*Dropbox
|
||||
*.DS_Store
|
||||
*LICENSE
|
||||
*React.jsx
|
||||
*Procfile
|
||||
*Dockerfile
|
||||
*Docker-compose.yml
|
||||
*Rakefile
|
||||
*Gemfile
|
||||
*Makefile
|
||||
*CMakeLists.txt
|
||||
|
||||
# file patterns (vim-devicons) (patterns not supported in lf)
|
||||
# .*jquery.*\.js$
|
||||
# .*angular.*\.js$
|
||||
# .*backbone.*\.js$
|
||||
# .*require.*\.js$
|
||||
# .*materialize.*\.js$
|
||||
# .*materialize.*\.css$
|
||||
# .*mootools.*\.js$
|
||||
# .*vimrc.*
|
||||
# Vagrantfile$
|
||||
|
||||
# file patterns (file name adaptations)
|
||||
*jquery.min.js
|
||||
*angular.min.js
|
||||
*backbone.min.js
|
||||
*require.min.js
|
||||
*materialize.min.js
|
||||
*materialize.min.css
|
||||
*mootools.min.js
|
||||
*vimrc
|
||||
Vagrantfile
|
||||
|
||||
# archives or compressed (extensions from dircolors defaults)
|
||||
*.tar
|
||||
*.tgz
|
||||
*.arc
|
||||
*.arj
|
||||
*.taz
|
||||
*.lha
|
||||
*.lz4
|
||||
*.lzh
|
||||
*.lzma
|
||||
*.tlz
|
||||
*.txz
|
||||
*.tzo
|
||||
*.t7z
|
||||
*.zip
|
||||
*.z
|
||||
*.dz
|
||||
*.gz
|
||||
*.lrz
|
||||
*.lz
|
||||
*.lzo
|
||||
*.xz
|
||||
*.zst
|
||||
*.tzst
|
||||
*.bz2
|
||||
*.bz
|
||||
*.tbz
|
||||
*.tbz2
|
||||
*.tz
|
||||
*.deb
|
||||
*.rpm
|
||||
*.jar
|
||||
*.war
|
||||
*.ear
|
||||
*.sar
|
||||
*.rar
|
||||
*.alz
|
||||
*.ace
|
||||
*.zoo
|
||||
*.cpio
|
||||
*.7z
|
||||
*.rz
|
||||
*.cab
|
||||
*.wim
|
||||
*.swm
|
||||
*.dwm
|
||||
*.esd
|
||||
|
||||
# image formats (extensions from dircolors defaults)
|
||||
*.jpg
|
||||
*.jpeg
|
||||
*.mjpg
|
||||
*.mjpeg
|
||||
*.gif
|
||||
*.bmp
|
||||
*.pbm
|
||||
*.pgm
|
||||
*.ppm
|
||||
*.tga
|
||||
*.xbm
|
||||
*.xpm
|
||||
*.tif
|
||||
*.tiff
|
||||
*.png
|
||||
*.svg
|
||||
*.svgz
|
||||
*.mng
|
||||
*.pcx
|
||||
*.mov
|
||||
*.mpg
|
||||
*.mpeg
|
||||
*.m2v
|
||||
*.mkv
|
||||
*.webm
|
||||
*.ogm
|
||||
*.mp4
|
||||
*.m4v
|
||||
*.mp4v
|
||||
*.vob
|
||||
*.qt
|
||||
*.nuv
|
||||
*.wmv
|
||||
*.asf
|
||||
*.rm
|
||||
*.rmvb
|
||||
*.flc
|
||||
*.avi
|
||||
*.fli
|
||||
*.flv
|
||||
*.gl
|
||||
*.dl
|
||||
*.xcf
|
||||
*.xwd
|
||||
*.yuv
|
||||
*.cgm
|
||||
*.emf
|
||||
*.ogv
|
||||
*.ogx
|
||||
|
||||
# audio formats (extensions from dircolors defaults)
|
||||
*.aac
|
||||
*.au
|
||||
*.flac
|
||||
*.m4a
|
||||
*.mid
|
||||
*.midi
|
||||
*.mka
|
||||
*.mp3
|
||||
*.mpc
|
||||
*.ogg
|
||||
*.ra
|
||||
*.wav
|
||||
*.oga
|
||||
*.opus
|
||||
*.spx
|
||||
*.xspf
|
||||
|
||||
# other formats
|
||||
*.pdf
|
||||
'';
|
||||
}
|
||||
25
modules/hm/libinput-gestures.nix
Normal file
25
modules/hm/libinput-gestures.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
libinputGesturesCmd = "${pkgs.libinput-gestures}/bin/libinput-gestures";
|
||||
xdotool = "${pkgs.xdotool}/bin/xdotool";
|
||||
in
|
||||
{
|
||||
systemd.user.services."libinput-gestures" = {
|
||||
Unit = {
|
||||
Description = "Touchpad gestures";
|
||||
After = [ "graphical-session-pre.target" ];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
};
|
||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStart = libinputGesturesCmd;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."libinput-gestures.conf".text = ''
|
||||
gesture swipe left ${xdotool} key alt+Right
|
||||
gesture swipe right ${xdotool} key alt+Left
|
||||
gesture swipe up ${xdotool} key alt+Tab
|
||||
'';
|
||||
}
|
||||
1
modules/hm/lorri.nix
Normal file
1
modules/hm/lorri.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ services.lorri.enable = true; }
|
||||
6
modules/hm/lsd.nix
Normal file
6
modules/hm/lsd.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
programs.lsd = {
|
||||
enable = true;
|
||||
enableAliases = true;
|
||||
};
|
||||
}
|
||||
3
modules/hm/lutris.nix
Normal file
3
modules/hm/lutris.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = [ pkgs.lutris ];
|
||||
}
|
||||
6
modules/hm/man.nix
Normal file
6
modules/hm/man.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
programs.man = {
|
||||
enable = true;
|
||||
# generateCaches = true;
|
||||
};
|
||||
}
|
||||
29
modules/hm/mangohud.nix
Normal file
29
modules/hm/mangohud.nix
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{ pkgs, ... }:
|
||||
with pkgs.lib.nix-rice;
|
||||
let strPalette = palette.toRgbShortHex pkgs.rice.colorPalette;
|
||||
in {
|
||||
programs.mangohud = {
|
||||
enable = true;
|
||||
enableSessionWide = true;
|
||||
settings = {
|
||||
toggle_fps_limit = "F1";
|
||||
cpu_color = strPalette.normal.blue;
|
||||
cpu_temp = true;
|
||||
engine_color = strPalette.normal.red;
|
||||
gpu_color = strPalette.normal.green;
|
||||
gpu_stats = true;
|
||||
gpu_temp = true;
|
||||
io_color = strPalette.normal.white;
|
||||
media_player_color = strPalette.normal.white;
|
||||
media_player_name = "spotify";
|
||||
output_folder = "/home/bertof";
|
||||
position = "top-left";
|
||||
ram = true;
|
||||
ram_color = strPalette.normal.magenta;
|
||||
toggle_hud = "Shift_L+F12";
|
||||
toggle_logging = "Shift_L+F2";
|
||||
vram = true;
|
||||
vram_color = strPalette.dark.magenta;
|
||||
};
|
||||
};
|
||||
}
|
||||
18
modules/hm/megasync.nix
Normal file
18
modules/hm/megasync.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{ pkgs, ... }:
|
||||
let megasyncCmd = "${pkgs.megacmd}/bin/mega-cmd-server";
|
||||
in {
|
||||
home.packages = [ pkgs.megacmd ];
|
||||
|
||||
systemd.user.services."mega-cmd-server" = {
|
||||
Unit = {
|
||||
Description = "Mega command server";
|
||||
After = [ "default.target" ];
|
||||
PartOf = [ "default.target" ];
|
||||
};
|
||||
Install = { WantedBy = [ "default.target" ]; };
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStart = megasyncCmd;
|
||||
};
|
||||
};
|
||||
}
|
||||
9
modules/hm/mpv.nix
Normal file
9
modules/hm/mpv.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
programs.mpv = {
|
||||
enable = true;
|
||||
bindings = {
|
||||
"Ctrl+Right" = "playlist-next";
|
||||
"Ctrl+Left" = "playlist-prev";
|
||||
};
|
||||
};
|
||||
}
|
||||
1
modules/hm/nautilus.nix
Normal file
1
modules/hm/nautilus.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ pkgs, ... }: { home.packages = [ pkgs.gnome.nautilus ]; }
|
||||
12
modules/hm/ncspot.nix
Normal file
12
modules/hm/ncspot.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
programs.ncspot = {
|
||||
enable = true;
|
||||
# package = pkgs.ncspot.overrideAttrs (o: {
|
||||
# buildFeatures = o.buildFeatures ++ [ "cover" "mpris" "notify" "share_clipboard" ];
|
||||
# });
|
||||
settings = {
|
||||
use_nerdfont = true;
|
||||
notify = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
6
modules/hm/nemo.nix
Normal file
6
modules/hm/nemo.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs.cinnamon; [
|
||||
nemo
|
||||
];
|
||||
}
|
||||
|
||||
31
modules/hm/nix-index.nix
Normal file
31
modules/hm/nix-index.nix
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
programs.nix-index = {
|
||||
enable = true;
|
||||
# package = pkgs.unstable_pkgs.nix-index;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
# systemd.user = {
|
||||
# services."nix-index" = {
|
||||
# Unit = {
|
||||
# Description = "Update the nix-locate database";
|
||||
# After = [ "network.target" ];
|
||||
# };
|
||||
# Service = {
|
||||
# Type = "oneshot";
|
||||
# ExecStart = "${config.programs.nix-index.package}/bin/nix-index";
|
||||
# };
|
||||
# };
|
||||
|
||||
# timers."nix-index" = {
|
||||
# Unit.Description = "Daily update the nix-locate database";
|
||||
# Timer = {
|
||||
# OnCalendar = "daily";
|
||||
# Persistent = true;
|
||||
# Unit = "nix-index.service";
|
||||
# };
|
||||
# Install.WantedBy = [ "timers.target" ];
|
||||
# };
|
||||
# };
|
||||
}
|
||||
1
modules/hm/noti.nix
Normal file
1
modules/hm/noti.nix
Normal file
|
|
@ -0,0 +1 @@
|
|||
{ programs.noti = { enable = true; }; }
|
||||
11
modules/hm/nushell.nix
Normal file
11
modules/hm/nushell.nix
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
programs.nushell = {
|
||||
enable = true;
|
||||
configFile.text = ''
|
||||
let-env config = {
|
||||
show_banner: false
|
||||
}
|
||||
'';
|
||||
envFile.text = "";
|
||||
};
|
||||
}
|
||||
20
modules/hm/obs-studio.nix
Normal file
20
modules/hm/obs-studio.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
package = pkgs.obs-studio;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
# obs-backgroundremoval
|
||||
# obs-multi-rtmp
|
||||
obs-nvfbc
|
||||
obs-pipewire-audio-capture
|
||||
obs-vkcapture
|
||||
obs-backgroundremoval
|
||||
input-overlay
|
||||
|
||||
# obs-linuxbrowser
|
||||
# obs-gstreamer
|
||||
# obs-move-transition
|
||||
# obs-multi-rtmp
|
||||
];
|
||||
};
|
||||
}
|
||||
6
modules/hm/office.nix
Normal file
6
modules/hm/office.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs) hunspell libreoffice-fresh;
|
||||
inherit (pkgs.hunspellDicts) en_GB-large en_US-large it_IT;
|
||||
};
|
||||
}
|
||||
17
modules/hm/onedrive.nix
Normal file
17
modules/hm/onedrive.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ pkgs, ... }:
|
||||
let onedriveCmd = "${pkgs.onedrive}/bin/onedrive --monitor";
|
||||
in {
|
||||
systemd.user.services."onedrive" = {
|
||||
Unit = {
|
||||
Description = "OneDrive synchronization service";
|
||||
After = [ "network.target" ];
|
||||
PartOf = [ "default.target" ];
|
||||
};
|
||||
Install = { WantedBy = [ "default.target" ]; };
|
||||
Service = {
|
||||
ExecStart = onedriveCmd;
|
||||
Restart = "always";
|
||||
RestartSec = "30s";
|
||||
};
|
||||
};
|
||||
}
|
||||
14
modules/hm/pass.nix
Normal file
14
modules/hm/pass.nix
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.password-store = {
|
||||
package = pkgs.pass.withExtensions (ext:
|
||||
with ext; [
|
||||
# pass-audit
|
||||
pass-checkup
|
||||
pass-import
|
||||
pass-otp
|
||||
pass-tomb
|
||||
pass-update
|
||||
]);
|
||||
enable = true;
|
||||
};
|
||||
}
|
||||
27
modules/hm/picom.nix
Normal file
27
modules/hm/picom.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
services.picom = {
|
||||
enable = true;
|
||||
|
||||
# blur = true;
|
||||
# experimentalBackends = true;
|
||||
# fade = false;
|
||||
# shadow = true;
|
||||
# vSync = true;
|
||||
# settings = {
|
||||
# blur =
|
||||
# {
|
||||
# method = "gaussian";
|
||||
# size = 10;
|
||||
# deviation = 7.0;
|
||||
# };
|
||||
# };
|
||||
# extraOptions = ''
|
||||
# blur:
|
||||
# {
|
||||
# method = "gaussian";
|
||||
# size = 10;
|
||||
# deviation = 7.0;
|
||||
# }
|
||||
# '';
|
||||
};
|
||||
}
|
||||
342
modules/hm/polybar.nix
Normal file
342
modules/hm/polybar.nix
Normal file
|
|
@ -0,0 +1,342 @@
|
|||
{ nixosConfig, config, pkgs, lib, ... }:
|
||||
with lib;
|
||||
let
|
||||
inherit (pkgs.rice) colorPalette opacity;
|
||||
grep = "${pkgs.gnugrep}/bin/grep";
|
||||
cut = "${pkgs.coreutils}/bin/cut";
|
||||
pavucontrol = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||||
pgrep = "${pkgs.procps}/bin/pgrep";
|
||||
pkill = "${pkgs.procps}/bin/pkill";
|
||||
playerCtl = "${pkgs.playerctl}/bin/playerctl";
|
||||
dunstctl = "${pkgs.dunst}/bin/dunstctl";
|
||||
zscroll = "${pkgs.zscroll}/bin/zscroll";
|
||||
notificationStatus = pkgs.writeShellScript "notificationStatus" ''
|
||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.dbus ]}"
|
||||
if [[ `${dunstctl} is-paused` == "true" ]]; then echo ; else echo ; fi
|
||||
'';
|
||||
notificationToggle = pkgs.writeShellScript "notificationToggle" ''
|
||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.dbus ]}"
|
||||
${dunstctl} set-paused toggle
|
||||
'';
|
||||
keyboardStatus = pkgs.writeShellScript "keyboardStatus" ''
|
||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.coreutils ]}"
|
||||
if [[ `cat ~/.local/share/keyboard-switch.state` == "disabled" ]]; then echo ; else echo ; fi
|
||||
'';
|
||||
keyboardToggle = pkgs.writeShellScript "keyboardToggle" ''
|
||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.keyboard-switch ]}"
|
||||
keyboard-switch
|
||||
'';
|
||||
notificationHistory = pkgs.writeShellScript "notificationToggle" ''
|
||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.dbus ]}"
|
||||
${dunstctl} set-paused false
|
||||
for i in {1..10}; do ${dunstctl} history-pop; done
|
||||
'';
|
||||
playerStatusBasic = pkgs.writeShellScript "playerStatusBasic" ''
|
||||
${playerCtl} status || true
|
||||
'';
|
||||
playerStatusSrc = pkgs.writeShellScript "playerStatusSrc" ''
|
||||
${playerCtl} -f '{{title}} - {{artist}}' metadata || true
|
||||
'';
|
||||
playerStatus = pkgs.writeShellScript "playerStatus" ''
|
||||
${zscroll} -l 25 -M ${playerStatusBasic} \
|
||||
-m "Playing" "-b '▶ ' -s 1" \
|
||||
-m "Paused" "-b '⏸ ' -s 0" \
|
||||
-u true ${playerStatusSrc} &
|
||||
wait
|
||||
'';
|
||||
powermenu = pkgs.writeShellScript "powermenu" ''
|
||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.rofi pkgs.rofi-power-menu pkgs.zsh ]}"
|
||||
zsh -c 'rofi -show menu -modi "menu:rofi-power-menu --choices=shutdown/reboot/hibernate/logout"'
|
||||
'';
|
||||
colors = with pkgs.lib.nix-rice;
|
||||
let alpha = 255 * opacity;
|
||||
in palette.toARGBHex rec {
|
||||
|
||||
normal = {
|
||||
foreground = color.darken 10 colorPalette.foreground;
|
||||
background = color.setAlphaRgba alpha colorPalette.background;
|
||||
underline = colorPalette.normal.blue;
|
||||
};
|
||||
|
||||
active = {
|
||||
inherit (colorPalette) foreground;
|
||||
background = color.setAlphaRgba alpha colorPalette.background;
|
||||
underline = colorPalette.normal.yellow;
|
||||
};
|
||||
|
||||
selected = {
|
||||
inherit (colorPalette) foreground;
|
||||
background = color.setAlphaRgba alpha colorPalette.background;
|
||||
underline = colorPalette.bright.red;
|
||||
};
|
||||
|
||||
inherit (colorPalette.normal) green red yellow;
|
||||
inherit (color) transparent;
|
||||
orange = colorPalette.bright.red;
|
||||
alert = orange;
|
||||
};
|
||||
|
||||
commonBar = {
|
||||
locale = config.home.language.base;
|
||||
monitor = "\${env:MONITOR}";
|
||||
width = "100%";
|
||||
height = 20;
|
||||
radius = 6.0;
|
||||
fixed-center = false;
|
||||
|
||||
inherit (colors.normal) background foreground;
|
||||
|
||||
line-size = 2;
|
||||
line-color = colors.normal.underline;
|
||||
padding = 0;
|
||||
module.margin = 0;
|
||||
separator = " ";
|
||||
border = {
|
||||
color = colors.transparent;
|
||||
left.size = 2;
|
||||
righ.sizet = 2;
|
||||
top.size = 2;
|
||||
bottom.size = 0;
|
||||
};
|
||||
font = [
|
||||
"${pkgs.rice.font.monospace.name}:size=${
|
||||
toString pkgs.rice.font.monospace.size
|
||||
};2"
|
||||
# "Font Awesome 6 Free:size=14;0"
|
||||
# "Noto Color Emoji:size=2;2"
|
||||
"Noto Sans Symbols2:size=${toString pkgs.rice.font.monospace.size};2"
|
||||
"Material Design Icons:size=${toString pkgs.rice.font.monospace.size};2"
|
||||
# "EmojiOne Color:size=${toString pkgs.rice.font.monospace.size};0"
|
||||
"Noto Sans CJK JP:size=${toString pkgs.rice.font.monospace.size};0"
|
||||
"Noto Sans CJK KR:size=${toString pkgs.rice.font.monospace.size};0"
|
||||
"Noto Sans CJK CN:size=${toString pkgs.rice.font.monospace.size};0"
|
||||
"Noto Sans CJK HK:size=${toString pkgs.rice.font.monospace.size};0"
|
||||
];
|
||||
enable-ipc = true;
|
||||
wm-restack = "bspwm";
|
||||
};
|
||||
|
||||
ramp = [ "▂" "▃" "▄" "▅" "▆" "▇" ];
|
||||
in
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs) noto-fonts material-design-icons noto-fonts-cjk-sans;
|
||||
# emojione
|
||||
# noto-fonts-emoji
|
||||
# font-awesome
|
||||
inherit (pkgs.rice.font.monospace) package;
|
||||
};
|
||||
services.polybar = {
|
||||
enable = true;
|
||||
package = pkgs.polybarFull;
|
||||
script = ''
|
||||
monitor=`polybar -m | ${grep} primary | ${cut} -d":" -f1`
|
||||
MONITOR=$monitor polybar primary &
|
||||
monitors=(`polybar -m | ${grep} -v primary | ${cut} -d":" -f1`)
|
||||
for monitor in "''${monitors[@]}"; do
|
||||
MONITOR=$monitor polybar secondary &
|
||||
done
|
||||
'';
|
||||
|
||||
settings = {
|
||||
"settings" = { screenchange-reload = false; };
|
||||
|
||||
"bar/primary" = recursiveUpdate commonBar {
|
||||
modules-left = "bspwm";
|
||||
# modules-center =
|
||||
modules-right =
|
||||
"player pulseaudio temperature cpu memory battery keyboard-switch notifications powermenu date";
|
||||
tray = {
|
||||
position = "right";
|
||||
padding = 1;
|
||||
};
|
||||
};
|
||||
|
||||
"bar/secondary" = recursiveUpdate commonBar {
|
||||
modules-left = "bspwm";
|
||||
# modules-center =
|
||||
modules-right =
|
||||
"player pulseaudio temperature cpu memory battery keyboard-switch notifications powermenu date";
|
||||
};
|
||||
|
||||
"module/battery" = {
|
||||
type = "internal/battery";
|
||||
|
||||
adapter = "AC";
|
||||
battery = "BAT0";
|
||||
full.at = 98;
|
||||
|
||||
animation = {
|
||||
charging = { text = [ "" "" "" "" "" ]; framerate = "750"; };
|
||||
discharging = { text = [ "" "" "" "" "" ]; framerate = "750"; };
|
||||
};
|
||||
|
||||
format = {
|
||||
charging = recursiveUpdate colors.selected {
|
||||
text = "<animation-charging> <label-charging>";
|
||||
};
|
||||
discharging = recursiveUpdate colors.active {
|
||||
text = "<animation-discharging> <label-discharging>";
|
||||
};
|
||||
full = recursiveUpdate colors.normal { text = " <label-full>"; };
|
||||
};
|
||||
|
||||
label.text = "%percentage%%";
|
||||
# = {
|
||||
# chargin = "%percentage%%";
|
||||
# dischargin = "%percentage%%";
|
||||
# full = "%percentage%%";
|
||||
# };
|
||||
};
|
||||
|
||||
"module/bspwm" = {
|
||||
type = "internal/bspwm";
|
||||
format = "<label-state>";
|
||||
|
||||
label =
|
||||
let
|
||||
common = {
|
||||
padding = 1;
|
||||
# separator = " ";
|
||||
text = "%name%";
|
||||
};
|
||||
in
|
||||
{
|
||||
focused = recursiveUpdate common colors.selected;
|
||||
occupied = recursiveUpdate common colors.active;
|
||||
urgent = recursiveUpdate (recursiveUpdate common colors.active) { background = colors.alert; };
|
||||
empty = recursiveUpdate common colors.normal;
|
||||
};
|
||||
};
|
||||
|
||||
"module/cpu" = {
|
||||
type = "internal/cpu";
|
||||
format = recursiveUpdate colors.normal { text = " <label>"; };
|
||||
interval = 2;
|
||||
label = "%percentage-sum%%";
|
||||
ramp-load = ramp;
|
||||
};
|
||||
|
||||
"module/date" = {
|
||||
type = "internal/date";
|
||||
format = colors.normal;
|
||||
date = { alt = "%Y-%m-%d"; text = "%a %d/%m/%y"; };
|
||||
interval = "1";
|
||||
label = "%date% %time%";
|
||||
time = { alt = "%H:%M:%S"; text = "%H:%M"; };
|
||||
};
|
||||
|
||||
"module/memory" = {
|
||||
type = "internal/memory";
|
||||
format = recursiveUpdate colors.normal { text = " <label>"; };
|
||||
interval = 2;
|
||||
label = "%percentage_used%%";
|
||||
ramp-used = ramp;
|
||||
};
|
||||
|
||||
"module/pulseaudio" = {
|
||||
interval = 2;
|
||||
bar.volume = {
|
||||
empty = { text = "─"; };
|
||||
fill = { text = "─"; };
|
||||
indicator = { text = "|"; };
|
||||
width = "10";
|
||||
foreground = [
|
||||
colors.green
|
||||
colors.green
|
||||
colors.green
|
||||
colors.green
|
||||
colors.green
|
||||
colors.yellow
|
||||
colors.orange
|
||||
colors.red
|
||||
];
|
||||
};
|
||||
click.right =
|
||||
"${pgrep} pavucontrol && ${pkill} pavucontrol || ${pavucontrol}";
|
||||
format = {
|
||||
padding = 1;
|
||||
muted = colors.active;
|
||||
volume = recursiveUpdate colors.normal {
|
||||
text = "<ramp-volume> <label-volume>";
|
||||
};
|
||||
};
|
||||
label.muted.text = " muted";
|
||||
label.volume.text = "%percentage%%";
|
||||
ramp.volume = [ "" "" "" ];
|
||||
type = "internal/pulseaudio";
|
||||
};
|
||||
|
||||
"module/temperature" = {
|
||||
format = recursiveUpdate colors.normal {
|
||||
text = "<ramp> <label>";
|
||||
warn = {
|
||||
text = "<ramp> <label-warn>";
|
||||
underline = colors.alert;
|
||||
};
|
||||
};
|
||||
label = {
|
||||
text = "%temperature-c%";
|
||||
warn = "%temperature-c%";
|
||||
};
|
||||
ramp.text = [ "" "" "" "" "" ];
|
||||
thermal.zone = if nixosConfig.networking.hostName == "odin" then 8 else 0;
|
||||
type = "internal/temperature";
|
||||
warn.temperature = "90";
|
||||
};
|
||||
"module/powermenu" = {
|
||||
type = "custom/script";
|
||||
format = recursiveUpdate colors.normal { padding = 0; };
|
||||
exec = "echo ";
|
||||
click.left = "${powermenu}";
|
||||
};
|
||||
"module/notifications" = {
|
||||
type = "custom/script";
|
||||
format = recursiveUpdate colors.normal { padding = 0; };
|
||||
exec = "${notificationStatus}";
|
||||
click.left = "${notificationToggle}";
|
||||
click.right = "${notificationHistory}";
|
||||
interval = 0.5;
|
||||
# tail = 1;
|
||||
};
|
||||
"module/keyboard-switch" = {
|
||||
type = "custom/script";
|
||||
format = recursiveUpdate colors.normal { padding = 0; };
|
||||
exec = "${keyboardStatus}";
|
||||
click.left = "${keyboardToggle}";
|
||||
interval = 1;
|
||||
# tail = 1;
|
||||
};
|
||||
"module/player" = {
|
||||
type = "custom/script";
|
||||
format = colors.normal;
|
||||
exec = playerStatus;
|
||||
tail = true;
|
||||
click.left = "${playerCtl} play-pause";
|
||||
clicl.right = "${playerCtl} stop";
|
||||
scroll = {
|
||||
up = "${playerCtl} previous";
|
||||
down = "${playerCtl} next";
|
||||
};
|
||||
};
|
||||
"module/player-prev" = {
|
||||
type = "custom/script";
|
||||
format = colors.normal;
|
||||
exec = "echo ";
|
||||
click.left = "${playerCtl} previous";
|
||||
};
|
||||
"module/player-next" = {
|
||||
type = "custom/script";
|
||||
format = colors.normal;
|
||||
exec = "echo ";
|
||||
click.left = "${playerCtl} next";
|
||||
};
|
||||
"module/player-play-pause" = {
|
||||
type = "custom/script";
|
||||
format = colors.normal;
|
||||
exec = "echo ";
|
||||
click.left = "${playerCtl} play-pause";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
36
modules/hm/pro_audio.nix
Normal file
36
modules/hm/pro_audio.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
user = "bertof";
|
||||
systemLibFolder = "/run/current-system/sw/lib/";
|
||||
userLibFolder =
|
||||
"/nix/var/nix/profiles/per-user/${user}/home-manager/home-path/lib/";
|
||||
variables = {
|
||||
DSSI_PATH = "$HOME/.dssi:${userLibFolder}/dssi:${systemLibFolder}/dssi";
|
||||
LADSPA_PATH =
|
||||
"$HOME/.ladspa:${userLibFolder}/ladspa:${systemLibFolder}/ladspa";
|
||||
LV2_PATH = "$HOME/.lv2:${userLibFolder}/lv2:${systemLibFolder}/lv2";
|
||||
LXVST_PATH = "$HOME/.lxvst:${userLibFolder}/lxvst:${systemLibFolder}/lxvst";
|
||||
VST_PATH = "$HOME/.vst:${userLibFolder}/vst:${systemLibFolder}/vst";
|
||||
VST3_PATH = "$HOME/.vst3:${userLibFolder}/vst3:${systemLibFolder}/vst3";
|
||||
};
|
||||
in
|
||||
{
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
ardour breeze-icons carla mamba mixxx rnnoise
|
||||
# zrythm
|
||||
|
||||
# Plugins
|
||||
artyFX autotalent boops cardinal geonkick giada lsp-plugins samplv1 surge
|
||||
surge-XT talentedhack vocproc x42-plugins zita-at1 zyn-fusion zynaddsubfx
|
||||
# helm
|
||||
# noise-repellent
|
||||
# speech-denoiser
|
||||
# stochas
|
||||
# sunvox
|
||||
# tunefish
|
||||
;
|
||||
};
|
||||
|
||||
home.sessionVariables = variables;
|
||||
}
|
||||
6
modules/hm/pycharm.nix
Normal file
6
modules/hm/pycharm.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs) python3;
|
||||
inherit (pkgs.unstable_pkgs.jetbrains) pycharm-professional jdk;
|
||||
};
|
||||
}
|
||||
9
modules/hm/research.nix
Normal file
9
modules/hm/research.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs.unstable_pkgs)
|
||||
# mendeley # Reference manager
|
||||
obsidian# Note manager
|
||||
zotero
|
||||
;
|
||||
};
|
||||
}
|
||||
217
modules/hm/rofi.nix
Normal file
217
modules/hm/rofi.nix
Normal file
|
|
@ -0,0 +1,217 @@
|
|||
{ pkgs, ... }: {
|
||||
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
rofimoji
|
||||
rofi-bluetooth
|
||||
rofi-power-menu
|
||||
rofi-vpn
|
||||
xdotool
|
||||
;
|
||||
};
|
||||
|
||||
programs.rofi = {
|
||||
enable = true;
|
||||
location = "center";
|
||||
font = "${pkgs.rice.font.monospace.name} ${toString pkgs.rice.font.monospace.size}";
|
||||
plugins = [ pkgs.rofi-calc ];
|
||||
extraConfig = { modi = "drun,run,ssh,window,calc"; };
|
||||
terminal = "alacritty";
|
||||
theme = "onedark";
|
||||
};
|
||||
|
||||
xdg.configFile."rofi/nord.rasi".text = ''
|
||||
* {
|
||||
nord0: #2e3440;
|
||||
nord1: #3b4252;
|
||||
nord2: #434c5e;
|
||||
nord3: #4c566a;
|
||||
nord4: #d8dee9;
|
||||
nord5: #e5e9f0;
|
||||
nord6: #eceff4;
|
||||
nord7: #8fbcbb;
|
||||
nord8: #88c0d0;
|
||||
nord9: #81a1c1;
|
||||
nord10: #5e81ac;
|
||||
nord11: #bf616a;
|
||||
nord12: #d08770;
|
||||
nord13: #ebcb8b;
|
||||
nord14: #a3be8c;
|
||||
nord15: #b48ead;
|
||||
|
||||
background-color: @nord1;
|
||||
border: 0px;
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
spacing: 0px;
|
||||
text-color: @nord4;
|
||||
}
|
||||
#inputbar {
|
||||
text-color: @nord3;
|
||||
padding: 6px;
|
||||
margin: 0px 0px 2px;
|
||||
children: [ entry ];
|
||||
}
|
||||
#entry {
|
||||
background-color: @nord3;
|
||||
text-color: @nord4;
|
||||
padding: 5px;
|
||||
}
|
||||
#message {
|
||||
border: 0px 0px 1px;
|
||||
border-color: @nord3;
|
||||
padding: 0px 0px 6px 7px;
|
||||
}
|
||||
#listview {
|
||||
lines: 10;
|
||||
padding: 2px 0px 0px;
|
||||
scrollbar: true;
|
||||
}
|
||||
#element {
|
||||
padding: 0px 0px 0px 7px;
|
||||
margin: 0px 0px 5px 0px;
|
||||
text-color: @nord4;
|
||||
}
|
||||
#element.normal.normal {
|
||||
text-color: @nord4;
|
||||
}
|
||||
#element.normal.urgent {
|
||||
text-color: @nord11;
|
||||
}
|
||||
#element.normal.active {
|
||||
text-color: @nord10;
|
||||
}
|
||||
#element.alternate.normal {
|
||||
text-color: @nord4;
|
||||
}
|
||||
#element.alternate.urgent {
|
||||
text-color: @nord11;
|
||||
}
|
||||
#element.alternate.active {
|
||||
text-color: @nord10;
|
||||
}
|
||||
#element.selected.normal {
|
||||
background-color: @nord8;
|
||||
text-color: @nord1;
|
||||
}
|
||||
#element.selected.urgent {
|
||||
background-color: @nord11;
|
||||
text-color: @nord4;
|
||||
}
|
||||
#element.selected.active {
|
||||
background-color: @nord10;
|
||||
text-color: @nord4;
|
||||
}
|
||||
#scrollbar {
|
||||
handle-color: @nord3;
|
||||
handle-width: 0.50em;
|
||||
}
|
||||
#button.selected {
|
||||
background-color: @nord8;
|
||||
text-color: @nord4;
|
||||
}
|
||||
'';
|
||||
xdg.configFile."rofi/onedark.rasi".text = ''
|
||||
/*
|
||||
* ROFI One Dark
|
||||
*
|
||||
* Based on OneDark.vim (https://github.com/joshdick/onedark.vim)
|
||||
*
|
||||
* Author: Benjamin Stauss
|
||||
* User: me-benni
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
* {
|
||||
black: #000000;
|
||||
red: #eb6e67;
|
||||
green: #95ee8f;
|
||||
yellow: #f8c456;
|
||||
blue: #6eaafb;
|
||||
mangenta: #d886f3;
|
||||
cyan: #6cdcf7;
|
||||
purple: #C678DF;
|
||||
emphasis: #50536b;
|
||||
text: #dfdfdf;
|
||||
text-alt: #b2b2b2;
|
||||
fg: #abb2bf;
|
||||
bg: #282c34;
|
||||
|
||||
spacing: 0;
|
||||
background-color: transparent;
|
||||
|
||||
font: "Knack Nerd Font 14";
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
window {
|
||||
transparency: "real";
|
||||
fullscreen: true;
|
||||
background-color: #282c34dd;
|
||||
}
|
||||
|
||||
mainbox {
|
||||
padding: 30% 30%;
|
||||
}
|
||||
|
||||
inputbar {
|
||||
margin: 0px 0px 20px 0px;
|
||||
children: [prompt, textbox-prompt-colon, entry, case-indicator];
|
||||
}
|
||||
|
||||
prompt {
|
||||
text-color: @blue;
|
||||
}
|
||||
|
||||
textbox-prompt-colon {
|
||||
expand: false;
|
||||
str: ":";
|
||||
text-color: @text-alt;
|
||||
}
|
||||
|
||||
entry {
|
||||
margin: 0px 10px;
|
||||
}
|
||||
|
||||
listview {
|
||||
spacing: 5px;
|
||||
dynamic: true;
|
||||
scrollbar: false;
|
||||
}
|
||||
|
||||
element {
|
||||
padding: 5px;
|
||||
text-color: @text-alt;
|
||||
highlight: bold #95ee8f; /* green */
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
element selected {
|
||||
background-color: @emphasis;
|
||||
text-color: @text;
|
||||
}
|
||||
|
||||
element urgent, element selected urgent {
|
||||
text-color: @red;
|
||||
}
|
||||
|
||||
element active, element selected active {
|
||||
text-color: @purple;
|
||||
}
|
||||
|
||||
message {
|
||||
padding: 5px;
|
||||
border-radius: 3px;
|
||||
background-color: @emphasis;
|
||||
border: 1px;
|
||||
border-color: @cyan;
|
||||
}
|
||||
|
||||
button selected {
|
||||
padding: 5px;
|
||||
border-radius: 3px;
|
||||
background-color: @emphasis;
|
||||
}
|
||||
'';
|
||||
}
|
||||
8
modules/hm/screen_locker.nix
Normal file
8
modules/hm/screen_locker.nix
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{ pkgs, ... }: {
|
||||
services.screen-locker = {
|
||||
enable = true;
|
||||
lockCmd = "${pkgs.lockscreen}/bin/lockscreen";
|
||||
inactiveInterval = 2; # minutes
|
||||
xautolock.extraOptions = [ "-secure" "-lockaftersleep" ];
|
||||
};
|
||||
}
|
||||
18
modules/hm/security.nix
Normal file
18
modules/hm/security.nix
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
nmap# RECOGNITION
|
||||
|
||||
# WEB
|
||||
httpie
|
||||
# altair
|
||||
# burpsuite
|
||||
|
||||
bintools ghidra-bin radare2# REVERSING
|
||||
# cutter
|
||||
|
||||
# INFRASTRUCTURE
|
||||
# cocktail-bar-cli
|
||||
;
|
||||
};
|
||||
}
|
||||
19
modules/hm/shell_aliases.nix
Normal file
19
modules/hm/shell_aliases.nix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
home.shellAliases = {
|
||||
"jc" = "sudo journalctl";
|
||||
"jcu" = "journalctl --user";
|
||||
"n" = "nix";
|
||||
"nb" = "nix build";
|
||||
"nf" = "find /nix/store/ -maxdepth 1 | grep";
|
||||
"nr" = "nix repl";
|
||||
"nR" = "nix run";
|
||||
"ns" = "nix search nixpkgs";
|
||||
"nsu" = "nix search unstable";
|
||||
"nss" = "nix search stable";
|
||||
"nS" = "nix shell";
|
||||
"sc" = "sudo systemctl";
|
||||
"scu" = "systemctl --user";
|
||||
};
|
||||
# programs.bash = { inherit shellAliases; };
|
||||
# programs.zsh = { inherit shellAliases; };
|
||||
}
|
||||
10
modules/hm/spotifyd.nix
Normal file
10
modules/hm/spotifyd.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ nixosConfig, ... }: {
|
||||
services.spotifyd = {
|
||||
enable = true;
|
||||
settings.global = {
|
||||
username = "filippoberto95";
|
||||
password_cmd = "cat ${nixosConfig.age.secrets.spotify_password.path}";
|
||||
backend = "pulseaudio";
|
||||
};
|
||||
};
|
||||
}
|
||||
7
modules/hm/ssh.nix
Normal file
7
modules/hm/ssh.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
programs.ssh = {
|
||||
enable = true;
|
||||
compression = true;
|
||||
matchBlocks = { "*" = { identityFile = "~/.ssh/id_ed25519"; }; };
|
||||
};
|
||||
}
|
||||
20
modules/hm/starship.nix
Normal file
20
modules/hm/starship.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
command_timeout = 1000;
|
||||
directory.truncation_symbol = "…/";
|
||||
hostname.format = "[$hostname]($style) "; # Disable ssh symbol
|
||||
# line_break.disabled = true; # Prompt in one line
|
||||
nix_shell.symbol = "❄️ "; # better soacing
|
||||
python.python_binary = [ "python3" "python2" ];
|
||||
status = {
|
||||
disabled = false; # enable module
|
||||
format = "[$symbol $status]($style) "; # nicer status format
|
||||
};
|
||||
username.format = "[$user]($style)@"; # compact username format
|
||||
};
|
||||
};
|
||||
}
|
||||
105
modules/hm/sxhkd.nix
Normal file
105
modules/hm/sxhkd.nix
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
{ pkgs, lib, ... }: {
|
||||
imports = [
|
||||
./nautilus.nix
|
||||
# ./thunar.nix
|
||||
./nemo.nix
|
||||
./terminator.nix
|
||||
./alacritty.nix
|
||||
];
|
||||
home.packages = builtins.attrValues {
|
||||
inherit (pkgs)
|
||||
bc# required by bsp-layout
|
||||
bsp-layout clipedit lockscreen terminator;
|
||||
};
|
||||
services.sxhkd =
|
||||
let
|
||||
primaryTerminal = "alacritty";
|
||||
secondaryTerminal = "terminator";
|
||||
fileManager = "nemo";
|
||||
secondaryFileManager = "nautilus";
|
||||
emojiChooser = "rofimoji --skin-tone light -a copy";
|
||||
arandr = "${pkgs.arandr}/bin/arandr";
|
||||
passwordChoser = "rofi-rbw";
|
||||
notify = "${pkgs.libnotify}/bin/notify-send";
|
||||
pamixer = "${pkgs.pamixer}/bin/pamixer";
|
||||
playerctl = "${pkgs.playerctl}/bin/playerctl";
|
||||
xbacklight = "${pkgs.xorg.xbacklight}/bin/xbacklight";
|
||||
resetBspwm = pkgs.writeShellScript "resetBspwm" ''
|
||||
bspc wm -r
|
||||
for p in {top,bottom,left,right}; do bspc config -m any ''${p}_padding 0; done # Reset padding
|
||||
systemctl --user restart polybar # Restart polybar
|
||||
${notify} "BSPWM restarted"
|
||||
'';
|
||||
moveAllNodesToPrimary = pkgs.writeShellScript "moveAllNodesToPrimary" ''
|
||||
comm -23 <(bspc query -N | sort) <(bspc query -m primary -N | sort) | while read n; do bspc node $n -m primary; done
|
||||
'';
|
||||
notifyVolume = pkgs.writeShellScript "notifyVolume" ''
|
||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.coreutils pkgs.pamixer ]}"
|
||||
sink=`pamixer --get-default-sink | tail -n 1| sed -E 's/.+"(.+)"$/\1/'`
|
||||
muted=`pamixer --get-mute`
|
||||
volume=`pamixer --get-volume`
|
||||
if [[ $muted == "true" ]]; then
|
||||
${notify} -r 1 -h "int:value:0" "Muted" "$sink"
|
||||
else
|
||||
${notify} -r 1 -h "int:value:$volume" "Volume $volume%" "$sink"
|
||||
fi
|
||||
'';
|
||||
notifyBrightness = pkgs.writeShellScript "notifyBrightness" ''
|
||||
level=`printf "%.0f" $(${xbacklight} -get)`
|
||||
${notify} -r 2 -h "int:value:$level" "Luminosità $level"
|
||||
'';
|
||||
powermenu = pkgs.writeShellScript "powermenu" ''
|
||||
PATH=$PATH:"${lib.makeBinPath [ pkgs.rofi pkgs.rofi-power-menu ]}"
|
||||
rofi -show menu -modi "menu:rofi-power-menu --choices=shutdown/reboot/hibernate/logout"
|
||||
'';
|
||||
in
|
||||
{
|
||||
enable = true;
|
||||
keybindings = {
|
||||
"alt + Tab" = "rofi -show window";
|
||||
"Print" = "${pkgs.gnome.gnome-screenshot}/bin/gnome-screenshot";
|
||||
"super + alt + {h,j,k,l}" = "bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}";
|
||||
"super + alt + m" = "lockscreen";
|
||||
"super + alt + p" = "${arandr}";
|
||||
"super + alt + o" = "${moveAllNodesToPrimary}";
|
||||
"super + alt + r" = "${resetBspwm}";
|
||||
"super + alt + shift + {h,j,k,l}" = "bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}";
|
||||
"super + bracket{left,right}" = "bspc desktop -f {prev,next}.local";
|
||||
"super + b" = "${pkgs.update-background}/bin/update-background";
|
||||
"super + ctrl + {1-9}" = "bspc node -o 0.{1-9}";
|
||||
"super + ctrl + {h,j,k,l}" = "bspc node -p {west,south,north,east}";
|
||||
"super + ctrl + {m,x,y,z}" = "bspc node -g {marked,locked,sticky,private}";
|
||||
"super + ctrl + shift + space" = "bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel";
|
||||
"super + ctrl + space" = "bspc node -p cancel";
|
||||
"super + e {_,+shift}" = "{${fileManager},${secondaryFileManager}}";
|
||||
"super + shift + p" = "clipedit";
|
||||
"super + Escape" = "pkill -USR1 -x sxhkd";
|
||||
"super + g" = "bspc node -s biggest";
|
||||
"super + {grave,Tab}" = "bspc {node,desktop} -f last";
|
||||
"super + {h,j,k,l}" = "dir={west,south,north,east}; bspc node -f $dir || bspc monitor -f $dir";
|
||||
"super + {Left,Down,Up,Right}" = "bspc node -v {-20 0,0 20,0 -20,20 0}";
|
||||
"super + m" = "bspc desktop -l next";
|
||||
"super + n {_, + shift}" = "bsp-layout {next, previous}";
|
||||
"super + {o,i}" = "bspc wm -h off;bspc node {older,newer} -f;bspc wm -h on";
|
||||
"super + {p,b,comma,period}" = "bspc node -f @{parent,brother,first,second}";
|
||||
"super + {_,shift + }{1-9,0}" = "bspc {desktop -f,node -d} 'focused:^{1-9,10}'";
|
||||
"super + {_,shift + } c" = "bspc node -f {next,prev}.local";
|
||||
"super + {_,shift + } space" = "rofi -show {drun,run}";
|
||||
"super + shift + ctrl + d" = "rofi -show ssh";
|
||||
"super + alt + e" = emojiChooser;
|
||||
"super + alt + i" = passwordChoser;
|
||||
"super + shift + {h,j,k,l}" = ''dir={west,south,north,east}; bspc node -s "$dir.local" --follow || bspc node -m "$dir" --follow'';
|
||||
"super + {_,shift + } Return" = "{${primaryTerminal} , ${secondaryTerminal}}";
|
||||
"super + {_,shift + } w" = "bspc node -{c,k}";
|
||||
"super + {t,shift + t,s,f}" = "bspc node -t {tiled,pseudo_tiled,floating,fullscreen}";
|
||||
# "super + y" = "bspc node newest.marked.local -n newest.!automatic.local";
|
||||
"XF86Audio{LowerVolume,Mute,RaiseVolume}" = "${pamixer} {-d 2 -u,-t,-i 2 -u} && ${notifyVolume}";
|
||||
"XF86Audio{Next,Play,Prev}" = "${playerctl} {next,play-pause,previous}";
|
||||
"super + alt + {Right,Down,Left}" = "${playerctl} {next,play-pause,previous}";
|
||||
"XF86MonBrightness{Up,Down}" = "${xbacklight} -{inc,dec} 10 && ${notifyBrightness}";
|
||||
"XF86PowerOff" = toString powermenu;
|
||||
"button10" = "rofi -show drun";
|
||||
"super + shift + {a,d}" = "bspc node @/ -C {forward,backward}";
|
||||
};
|
||||
};
|
||||
}
|
||||
6
modules/hm/syncthing.nix
Normal file
6
modules/hm/syncthing.nix
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
extraOptions = [ "--gui-address=http://0.0.0.0:8384" ];
|
||||
};
|
||||
}
|
||||
7
modules/hm/syncthing_tiziano.nix
Normal file
7
modules/hm/syncthing_tiziano.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
extraOptions = [ "--gui-address=http://0.0.0.0:8385" ];
|
||||
};
|
||||
}
|
||||
|
||||
84
modules/hm/terminator.nix
Normal file
84
modules/hm/terminator.nix
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
{ pkgs, ... }:
|
||||
with pkgs.lib.nix-rice;
|
||||
let
|
||||
strPalette = palette.toRgbHex {
|
||||
inherit (pkgs.rice.colorPalette) normal bright dark;
|
||||
inherit (pkgs.rice.colorPalette.primary) background foreground;
|
||||
};
|
||||
opacity = toString pkgs.rice.opacity;
|
||||
font = pkgs.rice.font.monospace;
|
||||
colorString = normal: bright:
|
||||
builtins.concatStringsSep ":" [
|
||||
normal.black
|
||||
normal.red
|
||||
normal.green
|
||||
normal.yellow
|
||||
normal.blue
|
||||
normal.magenta
|
||||
normal.cyan
|
||||
normal.white
|
||||
bright.black
|
||||
bright.red
|
||||
bright.green
|
||||
bright.yellow
|
||||
bright.blue
|
||||
bright.magenta
|
||||
bright.cyan
|
||||
bright.white
|
||||
];
|
||||
in
|
||||
{
|
||||
home.packages = [ pkgs.terminator ];
|
||||
|
||||
xdg.configFile."terminator/config".text = with strPalette; ''
|
||||
[global_config]
|
||||
scroll_tabbar = True
|
||||
enabled_plugins = ActivityWatch, LaunchpadCodeURLHandler, APTURLHandler, LaunchpadBugURLHandler
|
||||
suppress_multiple_term_dialog = True
|
||||
always_split_with_profile = True
|
||||
[keybindings]
|
||||
help = None
|
||||
[profiles]
|
||||
[[default]]
|
||||
visible_bell = True
|
||||
background_color = "${background}"
|
||||
background_darkness = ${opacity}
|
||||
background_type = transparent
|
||||
cursor_color = "${foreground}"
|
||||
font = ${font.name} weight=450 ${toString font.size}
|
||||
foreground_color = "${foreground}"
|
||||
show_titlebar = False
|
||||
scrollbar_position = hidden
|
||||
scrollback_lines = 10000
|
||||
palette = "${colorString normal bright}"
|
||||
use_system_font = False
|
||||
[[Light presentation]]
|
||||
visible_bell = True
|
||||
background_color = "${foreground}"
|
||||
cursor_color = "${background}"
|
||||
font = ${font.name} weight=450 20
|
||||
foreground_color = "${background}"
|
||||
show_titlebar = False
|
||||
palette = "${colorString dark normal}"
|
||||
use_system_font = False
|
||||
[[Dark presentation]]
|
||||
visible_bell = True
|
||||
background_color = "${background}"
|
||||
cursor_color = "${foreground}"
|
||||
font = ${font.name} weight=450 20
|
||||
foreground_color = "${foreground}"
|
||||
show_titlebar = False
|
||||
palette = "${colorString normal bright}"
|
||||
use_system_font = False
|
||||
[layouts]
|
||||
[[default]]
|
||||
[[[child1]]]
|
||||
parent = window0
|
||||
type = Terminal
|
||||
profile = default
|
||||
[[[window0]]]
|
||||
parent = ""
|
||||
type = Window
|
||||
[plugins]
|
||||
'';
|
||||
}
|
||||
10
modules/hm/thunar.nix
Normal file
10
modules/hm/thunar.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs.xfce; [
|
||||
thunar
|
||||
thunar-archive-plugin
|
||||
thunar-media-tags-plugin
|
||||
thunar-volman
|
||||
tumbler
|
||||
xfconf
|
||||
];
|
||||
}
|
||||
12
modules/hm/tmux.nix
Normal file
12
modules/hm/tmux.nix
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.tmux = {
|
||||
enable = true;
|
||||
clock24 = true;
|
||||
escapeTime = 25;
|
||||
terminal = "screen-256color";
|
||||
plugins = with pkgs.tmuxPlugins; [ nord prefix-highlight ];
|
||||
extraConfig = ''
|
||||
set -g mouse on
|
||||
'';
|
||||
};
|
||||
}
|
||||
28
modules/hm/twmn.nix
Normal file
28
modules/hm/twmn.nix
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
{ pkgs, ... }:
|
||||
with pkgs.lib.nix-rice;
|
||||
let
|
||||
strPalette = palette.toRGBHex pkgs.rice.colorPalette;
|
||||
font = pkgs.rice.font.normal;
|
||||
in
|
||||
{
|
||||
services.twmn = {
|
||||
enable = true;
|
||||
text = {
|
||||
color = strPalette.primary.foreground;
|
||||
font = {
|
||||
inherit (font) package size;
|
||||
family = font.name;
|
||||
};
|
||||
};
|
||||
window = {
|
||||
animation.bounce.enable = false;
|
||||
color = strPalette.primary.background;
|
||||
height = 32;
|
||||
opacity = float.round (pkgs.rice.opacity * 100);
|
||||
offset = {
|
||||
x = -20;
|
||||
y = 50;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
26
modules/hm/update_background.nix
Normal file
26
modules/hm/update_background.nix
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
{ pkgs, ... }:
|
||||
let update_time = "10m";
|
||||
in {
|
||||
home.packages = [ pkgs.update-background ];
|
||||
|
||||
systemd.user.services."update-background" = {
|
||||
Unit = {
|
||||
Description = "Set random desktop background using feh";
|
||||
After = [ "graphical-session.pre.target" ];
|
||||
PartOf = [ "graphical-session.target" ];
|
||||
RequiresMountsFor = [ "/home/bertof/Immagini" ];
|
||||
};
|
||||
Install = { WantedBy = [ "graphical-session.target" ]; };
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
IOSchedulingClass = "idle";
|
||||
ExecStart = "${pkgs.update-background}/bin/update-background";
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.timers."update-background" = {
|
||||
Unit = { Description = "Set random desktop background using feh"; };
|
||||
Timer = { OnUnitActiveSec = update_time; };
|
||||
Install = { WantedBy = [ "timers.target" ]; };
|
||||
};
|
||||
}
|
||||
38
modules/hm/vim.nix
Normal file
38
modules/hm/vim.nix
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
{ pkgs, ... }: {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
{
|
||||
plugin = airline;
|
||||
# config = "let g:airline#extensions#tabline#left_alt_sep = '>'";
|
||||
}
|
||||
|
||||
# {
|
||||
# plugin = catppuccin-nvim;
|
||||
# config = "colorscheme catppuccin-mocha";
|
||||
# }
|
||||
# {
|
||||
# plugin = neovim-ayu;
|
||||
# config = "colorscheme ayu-mirage";
|
||||
# }
|
||||
{
|
||||
plugin = nightfox-nvim;
|
||||
config = "colorscheme nightfox";
|
||||
}
|
||||
{
|
||||
plugin = vim-airline-themes;
|
||||
config = "let g:airline_theme='nightfox'";
|
||||
}
|
||||
fugitive
|
||||
surround
|
||||
];
|
||||
# settings = { ignorecase = true; };
|
||||
coc.enable = true;
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
vimdiffAlias = true;
|
||||
extraConfig = ''
|
||||
set mouse=a
|
||||
'';
|
||||
};
|
||||
}
|
||||
96
modules/hm/webapp.nix
Normal file
96
modules/hm/webapp.nix
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{ pkgs, lib, ... }:
|
||||
# Categories: https://specifications.freedesktop.org/menu-spec/latest/apa.html#main-category-registry
|
||||
let
|
||||
cmd = link: "${pkgs.google-chrome}/bin/google-chrome-stable --app=${link}";
|
||||
# cmd = link: "firefox --new-window ${link}";
|
||||
links = [
|
||||
{
|
||||
desktopName = "Microsoft Teams";
|
||||
link = "https://teams.microsoft.com";
|
||||
categories = [ "Office" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Chess.com";
|
||||
link = "https://chess.com";
|
||||
categories = [ "Game" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Google Calendar";
|
||||
link = "https://google.com/calendar";
|
||||
categories = [ "Office" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Google Keep";
|
||||
link = "https://keep.google.com";
|
||||
categories = [ "Office" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Google Play Books";
|
||||
link = "https://play.google.com/books";
|
||||
categories = [ "Office" "Viewer" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Mendeley";
|
||||
link =
|
||||
"https://www.mendeley.com/reference-manager/library/all-references";
|
||||
categories = [ "Office" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Monkeytype";
|
||||
link = "https://monkeytype.com/";
|
||||
categories = [ "Game" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Netflix";
|
||||
link = "https://www.netflix.com";
|
||||
categories = [ "AudioVideo" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Notion";
|
||||
link = "https://notion.so";
|
||||
categories = [ "Office" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Prime Video";
|
||||
link = "https://primevideo.com";
|
||||
categories = [ "AudioVideo" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Protonmail";
|
||||
link = "https://mail.protonmail.com";
|
||||
categories = [ "Office" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Twitch";
|
||||
link = "https://www.twitch.tv";
|
||||
categories = [ "AudioVideo" ];
|
||||
}
|
||||
{
|
||||
desktopName = "WhatsApp";
|
||||
link = "https://web.whatsapp.com/";
|
||||
}
|
||||
{
|
||||
desktopName = "YouTube";
|
||||
link = "https://www.youtube.com";
|
||||
categories = [ "AudioVideo" ];
|
||||
}
|
||||
{
|
||||
desktopName = "Plex";
|
||||
link = "https://app.plex.tv";
|
||||
categories = [ "AudioVideo" ];
|
||||
}
|
||||
];
|
||||
webAppBuilder =
|
||||
{ desktopName
|
||||
, name ? builtins.replaceStrings [ " " ] [ "_" ] desktopName
|
||||
, link
|
||||
, icon ? lib.toLower name
|
||||
, comment ? null
|
||||
, categories ? [ "Network" ]
|
||||
}:
|
||||
pkgs.makeDesktopItem {
|
||||
inherit name icon desktopName comment categories;
|
||||
exec = cmd link;
|
||||
};
|
||||
in
|
||||
{ home.packages = map webAppBuilder links; }
|
||||
49
modules/hm/xidlehook.nix
Normal file
49
modules/hm/xidlehook.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{ pkgs, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
xbacklightCmd = "${pkgs.xorg.xbacklight}/bin/xbacklight";
|
||||
xsetCmd = "${pkgs.xorg.xset}/bin/xset";
|
||||
lightLevel = 10;
|
||||
|
||||
saveLightLevel = pkgs.writeShellScript "saveLightLevel" ''
|
||||
${xbacklightCmd} -get > /run/user/$UID/xbacklight_v
|
||||
'';
|
||||
lowerLight = pkgs.writeShellScript "lower_light" ''
|
||||
${xbacklightCmd} -set ${toString lightLevel}
|
||||
'';
|
||||
resetLight = pkgs.writeShellScript "reset_light" ''
|
||||
${xbacklightCmd} -set $(</run/user/$UID/xbacklight_v) || ${xbacklightCmd} -set 100
|
||||
'';
|
||||
shutDownScreens = pkgs.writeShellScript "shutdown_screens" ''
|
||||
${xsetCmd} dpms force off
|
||||
'';
|
||||
in
|
||||
{
|
||||
services.xidlehook = {
|
||||
enable = true;
|
||||
package = pkgs.writeScriptBin "xidlehook" ''
|
||||
${pkgs.xidlehook}/bin/xidlehook --detect-sleep "$@"
|
||||
'';
|
||||
# not-when-audio = true;
|
||||
not-when-fullscreen = true;
|
||||
timers = [
|
||||
{
|
||||
command = "${saveLightLevel} && ${lowerLight}";
|
||||
canceller = "${resetLight}";
|
||||
delay = 60;
|
||||
}
|
||||
{
|
||||
command = "${pkgs.lockscreen}/bin/lockscreen";
|
||||
canceller = "${resetLight}";
|
||||
delay = 120;
|
||||
}
|
||||
{
|
||||
command = "${shutDownScreens}";
|
||||
canceller = "${resetLight}";
|
||||
delay = 300;
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
37
modules/hm/xresources.nix
Normal file
37
modules/hm/xresources.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
strPalette = with pkgs.rice;
|
||||
pkgs.lib.nix-rice.palette.toRgbHex { inherit (colorPalette) normal bright primary; };
|
||||
in
|
||||
{
|
||||
home.file.".Xresources" = {
|
||||
text = ''
|
||||
Xcursor.theme: "Quogir"
|
||||
Xcursor.size: 32
|
||||
|
||||
*.foreground: ${strPalette.primary.foreground}
|
||||
*.background: ${strPalette.primary.background}
|
||||
*.cursorColor: ${strPalette.normal.white}
|
||||
*.color0: ${strPalette.normal.black}
|
||||
*.color1: ${strPalette.normal.red}
|
||||
*.color2: ${strPalette.normal.green}
|
||||
*.color3: ${strPalette.normal.yellow}
|
||||
*.color4: ${strPalette.normal.blue}
|
||||
*.color5: ${strPalette.normal.magenta}
|
||||
*.color6: ${strPalette.normal.cyan}
|
||||
*.color7: ${strPalette.normal.white}
|
||||
*.color8: ${strPalette.bright.black}
|
||||
*.color9: ${strPalette.bright.red}
|
||||
*.color10: ${strPalette.bright.green}
|
||||
*.color11: ${strPalette.bright.yellow}
|
||||
*.color12: ${strPalette.bright.blue}
|
||||
*.color13: ${strPalette.bright.magenta}
|
||||
*.color14: ${strPalette.bright.cyan}
|
||||
*.color15: ${strPalette.bright.white}
|
||||
|
||||
xterm*faceName: ${pkgs.rice.font.monospace.name}
|
||||
xterm*faceSize: ${toString pkgs.rice.font.monospace.size}
|
||||
'';
|
||||
onChange = "${pkgs.xorg.xrdb}/bin/xrdb -merge ~/.Xresources ";
|
||||
};
|
||||
}
|
||||
22
modules/hm/zathura.nix
Normal file
22
modules/hm/zathura.nix
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{ pkgs, ... }:
|
||||
with pkgs.lib.nix-rice;
|
||||
let strPalette = palette.toRgbHex pkgs.rice.colorPalette;
|
||||
in {
|
||||
programs.zathura = {
|
||||
enable = true;
|
||||
mappings = { "<C-i>" = "recolor"; };
|
||||
options = {
|
||||
completion-bg = strPalette.bright.black;
|
||||
# default-bg = strPalette.normal.black;
|
||||
font = "${pkgs.rice.font.normal.name} 10";
|
||||
inputbar-bg = strPalette.bright.black;
|
||||
inputbar-fg = strPalette.normal.cyan;
|
||||
page-padding = 10;
|
||||
# recolor = true;
|
||||
recolor-lightcolor = strPalette.primary.background;
|
||||
recolor-darkcolor = strPalette.primary.foreground;
|
||||
statusbar-bg = strPalette.bright.black;
|
||||
selection-clipboard = "clipboard";
|
||||
};
|
||||
};
|
||||
}
|
||||
35
modules/hm/zellij.nix
Normal file
35
modules/hm/zellij.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
strPalette = pkgs.lib.nix-rice.palette.toRgbHex pkgs.rice.colorPalette;
|
||||
in
|
||||
{
|
||||
programs.zellij = { enable = true; package = pkgs.unstable_pkgs.zellij; };
|
||||
|
||||
home.shellAliases = {
|
||||
"ze" = "zellij";
|
||||
"zec" = "zellij -l compact";
|
||||
};
|
||||
|
||||
xdg.configFile."zellij/config.kdl".text = ''
|
||||
theme "nix-rice"
|
||||
pane_frames false
|
||||
'';
|
||||
|
||||
xdg.configFile."zellij/themes/nix-rice.kdl".text = ''
|
||||
themes {
|
||||
nix-rice {
|
||||
bg "${strPalette.primary.dim_foreground}" // Foreground darker
|
||||
fg "${strPalette.primary.bright_foreground}" // Selection
|
||||
red "${strPalette.normal.red}"
|
||||
black "${strPalette.primary.background}" // Background
|
||||
green "${strPalette.normal.green}"
|
||||
yellow "${strPalette.normal.yellow}"
|
||||
blue "${strPalette.normal.blue}"
|
||||
magenta "${strPalette.normal.magenta}"
|
||||
cyan "${strPalette.normal.cyan}"
|
||||
white "${strPalette.primary.foreground}" // Foreground
|
||||
orange "${strPalette.bright.red}"
|
||||
}
|
||||
}
|
||||
'';
|
||||
}
|
||||
7
modules/hm/zoxide.nix
Normal file
7
modules/hm/zoxide.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
}
|
||||
30
modules/hm/zsh.nix
Normal file
30
modules/hm/zsh.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages =
|
||||
builtins.attrValues { inherit (pkgs) nix-zsh-completions zsh-completions; };
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autocd = true;
|
||||
enableSyntaxHighlighting = true;
|
||||
plugins = [ ];
|
||||
initExtraBeforeCompInit = ''
|
||||
zstyle ':completion:*' menu select
|
||||
setopt CORRECT
|
||||
setopt AUTO_CD
|
||||
setopt CHASE_LINKS
|
||||
setopt PUSHD_TO_HOME
|
||||
'';
|
||||
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins =
|
||||
[ "common-aliases" "cp" "dirhistory" "git-auto-fetch" "git" "sudo" ];
|
||||
extraConfig = "";
|
||||
};
|
||||
|
||||
# prezto = {
|
||||
# enable = true;
|
||||
# };
|
||||
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue