diff --git a/custom/lockscreen/default.nix b/custom/lockscreen/default.nix index c9e0693..66ec6fa 100644 --- a/custom/lockscreen/default.nix +++ b/custom/lockscreen/default.nix @@ -3,8 +3,7 @@ , rice , roboto , i3lock-color -, update-background -, writeScript +, writeScriptBin , font ? { package = roboto; name = "Roboto"; } , palette ? rice.palette.palette {} , ... @@ -12,7 +11,7 @@ let strPalette = rice.palette.toRGBAHex palette; in -writeScript "lockscreen.sh" '' +writeScriptBin "lockscreen" '' #!/bin/sh # Using font package ${font.package} ${i3lock-color}/bin/i3lock-color \ @@ -53,6 +52,5 @@ writeScript "lockscreen.sh" '' --pass-media-keys \ --pass-screen-keys \ --pass-volume-keys \ - --nofork && - ${update-background} -'' + --nofork + '' diff --git a/custom/update-background/default.nix b/custom/update-background/default.nix index 1a74946..cd03c54 100644 --- a/custom/update-background/default.nix +++ b/custom/update-background/default.nix @@ -5,14 +5,14 @@ , findutils , gnugrep , coreutils -, writeScript +, writeScriptBin , backgrounds_directory ? "$HOME/Immagini/Sfondi"}: let find = "${findutils}/bin/find"; grep = "${gnugrep}/bin/grep"; shuf = "${coreutils}/bin/shuf"; in -writeScript "update-background.sh" '' +writeScriptBin "update-background" '' #!/bin/sh if [ $# -eq 0 ]; then image=`${find} ${backgrounds_directory} -type f | ${grep} -v "/\." | ${shuf} -n 1` diff --git a/environment.nix b/environment.nix deleted file mode 100644 index 112b4f8..0000000 --- a/environment.nix +++ /dev/null @@ -1,15 +0,0 @@ -values: { - enableCpp = false; - enableData = false; - enableGo = false; - enableHtml = false; - enableJava = false; - enableJavascript = false; - enableLatex = false; - enableNix = false; - enablePython = false; - enableRust = false; - enableShell = false; - enableSpelling = false; - enableOffice = true; -} // values diff --git a/flake.lock b/flake.lock index a6b2ecb..d8ba2e8 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,20 @@ { "nodes": { + "flake-utils": { + "locked": { + "lastModified": 1649676176, + "narHash": "sha256-OWKJratjt2RW151VUlJPRALb7OU2S5s+f0vLj4o1bHM=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "a4b154ebbdc88c8498a5c7b01589addc9e9cb678", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -21,6 +36,26 @@ "type": "github" } }, + "home-manager-unstable": { + "inputs": { + "nixpkgs": [ + "unstable" + ] + }, + "locked": { + "lastModified": 1649887921, + "narHash": "sha256-h2LZzn5LLwIFvVFLCdR8+VWluEP3U1I5y+0mDZjFjAk=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "92f58b6728e7c631a7ea0ed68cd21bb29a4876ff", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "nixos-hardware": { "locked": { "lastModified": 1649849514, @@ -54,12 +89,62 @@ }, "root": { "inputs": { + "flake-utils": "flake-utils", "home-manager": "home-manager", + "home-manager-unstable": "home-manager-unstable", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs", + "rust-overlay": "rust-overlay", + "tex2nix": "tex2nix", "unstable": "unstable" } }, + "rust-overlay": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1649903781, + "narHash": "sha256-m+3EZo0a4iS8IwHQhkM/riPuFpu76505xKqmN9j5O+E=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "e45696bedc4a13a5970376b8fc09660fdd0e6f6c", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, + "tex2nix": { + "inputs": { + "flake-utils": [ + "flake-utils" + ], + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1646670117, + "narHash": "sha256-fU6gLOP2xm6lTRKfMKeXAm7rEhYAVR4RcRFK1zh/QTM=", + "owner": "Mic92", + "repo": "tex2nix", + "rev": "74159694f0c27ffa3f9172c6d691635568fbece4", + "type": "github" + }, + "original": { + "owner": "Mic92", + "repo": "tex2nix", + "type": "github" + } + }, "unstable": { "locked": { "lastModified": 1649673231, diff --git a/flake.nix b/flake.nix index c5e0e38..2d10720 100644 --- a/flake.nix +++ b/flake.nix @@ -3,32 +3,81 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/release-21.11"; + + home-manager = { + url = "github:nix-community/home-manager/release-21.11"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - home-manager.url = "github:nix-community/home-manager/release-21.11"; + + home-manager-unstable = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "unstable"; + }; + + flake-utils.url = "github:numtide/flake-utils"; + nixos-hardware.url = "github:NixOS/nixos-hardware"; - # nixos-hardware.inputs.nixpkgs.follows = "nixpkgs"; + + rust-overlay = { + url = "github:oxalica/rust-overlay"; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; + }; + + tex2nix = { + url = github:Mic92/tex2nix; + inputs.nixpkgs.follows = "nixpkgs"; + inputs.flake-utils.follows = "flake-utils"; + }; }; - outputs = { self, nixpkgs, unstable, home-manager, nixos-hardware }: + outputs = + { self + , nixpkgs + , home-manager + , unstable + , home-manager-unstable + , flake-utils + , nixos-hardware + , rust-overlay + , tex2nix + }: let system = "x86_64-linux"; - pkgs = import nixpkgs { - inherit system; - config = { allowUnfree = true; }; + overlays = [ + (import ./rice.nix) + (rust-overlay.overlay) + (final: prev: { inherit (tex2nix.packages.${system}) tex2nix; }) + (final: prev: { + # cocktail-bar-cli = final.callPackage ./custom/cocktail-bar-cli { }; + # update-background = final.callPackage ./custom/update-background { backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+"; }; + lockscreen = final.callPackage ./custom/lockscreen { + palette = final.rice.colorPalette; + font = final.rice.font.normal; + }; + }) + ]; + nixpkgsSettings = { + inherit overlays system; + config = { + allowUnfree = true; + permittedInsecurePackages = [ "electron-9.4.4" ]; # authy dependency + }; }; - unstablePkgs = import nixpkgs { - inherit system; - config = { allowUnFree = true; }; - }; - lib = nixpkgs.lib; + pkgs = import nixpkgs nixpkgsSettings; + unstablePkgs = import nixpkgs nixpkgsSettings; in { + packages.x86_64-linux = pkgs; + nixosConfigurations = rec { - thor = lib.nixosSystem { + thor = pkgs.lib.nixosSystem { inherit system; modules = [ + { nixpkgs = nixpkgsSettings; } ./thor/hardware-configuration.nix nixos-hardware.nixosModules.common-cpu-amd nixos-hardware.nixosModules.common-pc-ssd @@ -36,10 +85,12 @@ ]; }; odin = odin-intel; - odin-intel = lib.nixosSystem { + odin-intel = pkgs.lib.nixosSystem { inherit system; modules = [ + { nixpkgs = nixpkgsSettings; } + ./odin/hardware-configuration.nix nixos-hardware.nixosModules.common-cpu-intel nixos-hardware.nixosModules.common-pc-laptop @@ -53,6 +104,7 @@ inherit system; modules = [ + { nixpkgs = nixpkgsSettings; } ./odin/hardware-configuration.nix nixos-hardware.nixosModules.common-cpu-intel nixos-hardware.nixosModules.common-pc-laptop @@ -66,6 +118,7 @@ inherit system; modules = [ + { nixpkgs = nixpkgsSettings; } ./odin/hardware-configuration.nix nixos-hardware.nixosModules.common-cpu-intel nixos-hardware.nixosModules.common-pc-laptop @@ -73,6 +126,14 @@ ./odin/base.nix ./odin/odin-nvidia.nix ./odin/pro_audio.nix + home-manager-unstable.nixosModules.home-manager + { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + # home-manager.nixpkgs.overlays = overlays; + home-manager.users.bertof = import ./odin.nix; + # home-manager.users.bertof.home.packages = [ unstable.hello ]; + } ]; }; }; diff --git a/modules/java.nix b/modules/java.nix index 0a78d8a..242399b 100644 --- a/modules/java.nix +++ b/modules/java.nix @@ -1,4 +1,3 @@ { pkgs, ...}: -{ - programs.java.enable = pkgs.devEnvironment.enableJava ? false; +{ programs.java.enable = true; } diff --git a/modules/kakoune.nix b/modules/kakoune.nix index 82a99d8..e8e6e06 100644 --- a/modules/kakoune.nix +++ b/modules/kakoune.nix @@ -18,33 +18,33 @@ let # editorconfig-core-c python3.pkgs.editorconfig ] ++ ( - lib.optionals (pkgs.devEnvironment.enableCpp) [ + [ clang-tools ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableData) [ + [ yaml-language-server nodePackages.vscode-langservers-extracted ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableHtml) [ + [ nodePackages.vscode-langservers-extracted ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableJavascript) [ + [ flow ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableLatex) [ + [ texlab ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableNix) [ + [ rnix-lsp ] ) ++ ( with python3.pkgs; - lib.optionals (pkgs.devEnvironment.enablePython) [ + [ black # pyls-black pyls-flake8 @@ -53,7 +53,7 @@ let python-lsp-server ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableRust) [ + [ cargo cargo-watch clippy @@ -62,11 +62,11 @@ let rustfmt ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableShell) [ + [ nodePackages.bash-language-server ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableSpelling) [ + [ aspell aspellDicts.en aspellDicts.en-computers @@ -74,26 +74,15 @@ let aspellDicts.it ] ); - plugins = with pkgs; - [ - kakounePlugins.prelude-kak - kakounePlugins.kak-lsp - kakounePlugins.auto-pairs-kak - kakounePlugins.powerline-kak - kakounePlugins.connect-kak - ]; + in { home.sessionVariables = { EDITOR = "kak"; VISUAL = "kak"; }; - programs.bash.shellAliases = { - k = "kak"; - }; - programs.zsh.shellAliases = { - k = "kak"; - }; + programs.bash.shellAliases = { k = "kak"; }; + programs.zsh.shellAliases = { k = "kak"; }; home.packages = packages; programs.kakoune = { enable = true; @@ -254,7 +243,7 @@ in commands = builtins.concatStringsSep "\n" [ "powerline-enable" ]; } ] ++ ( - lib.optionals (pkgs.devEnvironment.enableLatex) [ + [ { name = "BufSetOption"; option = "filetype=latex"; @@ -262,7 +251,7 @@ in } ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enablePython) [ + [ { name = "BufSetOption"; option = "filetype=python"; @@ -270,7 +259,7 @@ in } ] ) ++ ( - lib.optionals (pkgs.devEnvironment.enableData) [ + [ { name = "BufSetOption"; option = "filetype=(markdown|html|json|yaml|css|scss|less)"; @@ -301,173 +290,164 @@ in "require-module connect-lf" "require-module connect-rofi" ]; - plugins = plugins; + plugins = with pkgs.kakounePlugins; [ + prelude-kak + kak-lsp + auto-pairs-kak + powerline-kak + connect-kak + ]; }; - xdg.configFile."kak/colors/nord.kak".text = with strPalette; - '' - 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 - ''; - xdg.configFile."kak-lsp/kak-lsp.toml".text = with pkgs; - builtins.concatStringsSep "\n" ( - [ - '' - snippet_support = false - verbosity = 2 - [server] - timeout = 1800 # seconds = 30 minutes - '' - ] - ++ ( - lib.optional (pkgs.devEnvironment.enableCpp) '' - [language.c_cpp] - filetypes = ["c", "cpp"] - roots = ["compile_commands.json", ".clangd"] - command = "${clang-tools}/bin/clangd" - offset_encoding = "utf-8" - '' - ) ++ ( - lib.optional (pkgs.devEnvironment.enableData) '' - [language.json] - filetypes = ["json"] - roots = ["package.json"] - command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-json-language-server" - args = ["--stdio"] - [language.yaml] - filetypes = ["yaml"] - roots = [".git"] - command = "${yaml-language-server}/bin/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 - '' - ) ++ ( - lib.optional (pkgs.devEnvironment.enableGo) '' - [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" = [] - '' - ) - ++ ( - lib.optional (pkgs.devEnvironment.enableHtml) '' - [language.html] - filetypes = ["html"] - roots = ["package.json"] - command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-html-language-server" - args = ["--stdio"] - [language.css] - filetypes = ["css"] - roots = ["package.json", ".git"] - command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-css-language-server" - args = ["--stdio"] - [language.less] - filetypes = ["less"] - roots = ["package.json", ".git"] - command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-css-language-server" - args = ["--stdio"] - [language.scss] - filetypes = ["scss"] - roots = ["package.json", ".git"] - command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-css-language-server" - args = ["--stdio"] - '' - ) ++ ( - lib.optional (pkgs.devEnvironment.enableJavascript) '' - [language.javascript] - filetypes = ["javascript"] - roots = [".flowconfig"] - command = "${flow}/bin/flow" - args = ["lsp"] - '' - ) ++ ( - lib.optional (pkgs.devEnvironment.enableLatex) '' - [language.latex] - filetypes = ["latex"] - roots = [".git"] - command = "${texlab}/bin/texlab" - settings_section = "texlab" - [language.latex.settings.texlab] - # See https://github.com/latex-lsp/texlab/blob/master/src/options.rs - # bibtexFormatter = "${texlab}/bin/texlab" - '' - ) ++ ( - lib.optional (pkgs.devEnvironment.enableNix) '' - [language.nix] - filetypes = ["nix"] - roots = ["flake.nix", "shell.nix", ".git"] - command = "${rnix-lsp}/bin/rnix-lsp" - '' - ) ++ ( - lib.optional (pkgs.devEnvironment.enablePython) '' - [language.python] - filetypes = ["python"] - roots = ["requirements.txt", "setup.py", ".git", ".hg"] - command = "${python3.pkgs.python-lsp-server}/bin/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"] - '' - ) ++ ( - lib.optional (pkgs.devEnvironment.enableRust) '' - [language.rust] - filetypes = ["rust"] - roots = ["Cargo.toml"] - command = "${rust-analyzer}/bin/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 - '' - ) ++ ( - lib.optional (pkgs.devEnvironment.enableShell) '' - [language.bash] - filetypes = ["sh"] - roots = [".git", ".hg"] - command = "${nodePackages.bash-language-server}/bin/bash-language-server" - args = ["start"] - '' - ) - ); + xdg.configFile."kak/colors/nord.kak".text = with strPalette; '' + 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 + ''; + xdg.configFile."kak-lsp/kak-lsp.toml".text = with pkgs; builtins.concatStringsSep "\n" + [ + '' + snippet_support = false + verbosity = 2 + [server] + timeout = 1800 # seconds = 30 minutes + '' + '' + [language.c_cpp] + filetypes = ["c", "cpp"] + roots = ["compile_commands.json", ".clangd"] + command = "${clang-tools}/bin/clangd" + offset_encoding = "utf-8" + '' + '' + [language.json] + filetypes = ["json"] + roots = ["package.json"] + command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-json-language-server" + args = ["--stdio"] + [language.yaml] + filetypes = ["yaml"] + roots = [".git"] + command = "${yaml-language-server}/bin/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 = "${nodePackages.vscode-langservers-extracted}/bin/vscode-html-language-server" + args = ["--stdio"] + [language.css] + filetypes = ["css"] + roots = ["package.json", ".git"] + command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-css-language-server" + args = ["--stdio"] + [language.less] + filetypes = ["less"] + roots = ["package.json", ".git"] + command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-css-language-server" + args = ["--stdio"] + [language.scss] + filetypes = ["scss"] + roots = ["package.json", ".git"] + command = "${nodePackages.vscode-langservers-extracted}/bin/vscode-css-language-server" + args = ["--stdio"] + '' + '' + [language.javascript] + filetypes = ["javascript"] + roots = [".flowconfig"] + command = "${flow}/bin/flow" + args = ["lsp"] + '' + '' + [language.latex] + filetypes = ["latex"] + roots = [".git"] + command = "${texlab}/bin/texlab" + settings_section = "texlab" + [language.latex.settings.texlab] + # See https://github.com/latex-lsp/texlab/blob/master/src/options.rs + # bibtexFormatter = "${texlab}/bin/texlab" + '' + '' + [language.nix] + filetypes = ["nix"] + roots = ["flake.nix", "shell.nix", ".git"] + command = "${rnix-lsp}/bin/rnix-lsp" + '' + '' + [language.python] + filetypes = ["python"] + roots = ["requirements.txt", "setup.py", ".git", ".hg"] + command = "${python3.pkgs.python-lsp-server}/bin/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}/bin/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 = "${nodePackages.bash-language-server}/bin/bash-language-server" + args = ["start"] + '' + ]; } diff --git a/modules/latex.nix b/modules/latex.nix index 8ef3b29..3756dd5 100644 --- a/modules/latex.nix +++ b/modules/latex.nix @@ -1,6 +1,6 @@ { pkgs, lib, ...}: { - home.packages = lib.optionals pkgs.devEnvironment.enableLatex [ + home.packages = [ pkgs.texlive.combined.scheme-full ]; } diff --git a/modules/man.nix b/modules/man.nix index 801cf1e..a2507e6 100644 --- a/modules/man.nix +++ b/modules/man.nix @@ -1,6 +1,6 @@ { programs.man = { enable = true; - generateCaches = true; + # generateCaches = true; }; } diff --git a/modules/office.nix b/modules/office.nix index fd95577..3e7ef12 100644 --- a/modules/office.nix +++ b/modules/office.nix @@ -1,12 +1,11 @@ {pkgs, lib,...}: with pkgs; { - home.packages = (lib.optionals pkgs.devEnvironment.enableOffice [ + home.packages = [ # libreoffice-fresh onlyoffice-bin - ]) ++ (lib.optionals pkgs.devEnvironment.enableSpelling [ hunspellDicts.en_GB-large hunspellDicts.en_US-large hunspellDicts.it_IT - ]); + ]; } diff --git a/modules/pro_audio.nix b/modules/pro_audio.nix index 661cb74..675bfa6 100644 --- a/modules/pro_audio.nix +++ b/modules/pro_audio.nix @@ -15,6 +15,7 @@ in rnnoise ardour # zrythm + mixxx # Plugins # artyFX diff --git a/modules/pycharm.nix b/modules/pycharm.nix index c59ebcf..3f98070 100644 --- a/modules/pycharm.nix +++ b/modules/pycharm.nix @@ -2,8 +2,7 @@ { home.packages = with pkgs; [ jetbrains.pycharm-professional - python3 - pypy3 + # pypy3 ]; } diff --git a/modules/webapp.nix b/modules/webapp.nix index 96b9796..cb02f36 100644 --- a/modules/webapp.nix +++ b/modules/webapp.nix @@ -3,16 +3,16 @@ let cmd = link: "${pkgs.google-chrome}/bin/google-chrome-stable --app=${link}"; links = [ - { desktopName = "Protonmail"; link = "https://mail.protonmail.com"; categories = [ "Office" ]; icon = builtins.fetchurl "https://mail.protonmail.com/assets/coast-228x228.png"; } - { desktopName = "YouTube"; link = "https://www.youtube.com"; categories = [ "AudioVideo" ]; } - { desktopName = "Twitch"; link = "https://www.twitch.tv"; icon = builtins.fetchurl "https://static.twitchcdn.net/assets/favicon-32-e29e246c157142c94346.png"; categories = [ "AudioVideo" ]; } - { desktopName = "Netflix"; link = "https://www.netflix.com"; categories = [ "AudioVideo" ]; icon = builtins.fetchurl "https://assets.nflxext.com/us/ffe/siteui/common/icons/nficon2016.png"; } - { desktopName = "Prime Video"; link = "https://primevideo.com"; categories = [ "AudioVideo" ]; icon = builtins.fetchurl "https://m.media-amazon.com/images/G/01/digital/video/DVUI/favicons/apple-touch-icon-152x152._CB527404565_.png"; } - { desktopName = "Google Keep"; link = "https://keep.google.com"; categories = [ "Office" ]; icon = builtins.fetchurl "https://ssl.gstatic.com/keep/keep_2020q4v2.ico"; } - { desktopName = "Google Calendar"; link = "https://google.com/calendar"; categories = [ "Calendar" "Office" ]; icon = builtins.fetchurl "https://calendar.google.com/googlecalendar/images/favicons_2020q4/calendar_31_256.ico"; } - { desktopName = "Notion"; link = "https://notion.so"; categories = [ "Office" ]; icon = builtins.fetchurl "https://www.notion.so/images/logo-ios.png"; } + { desktopName = "Google Calendar"; link = "https://google.com/calendar"; categories = [ "Calendar" "Office" ]; } + { desktopName = "Google Keep"; link = "https://keep.google.com"; categories = [ "Office" ]; } + { desktopName = "Monkeytype"; link = "https://monkeytype.com/"; } + { 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 = "Monkeytype"; link = "https://monkeytype.com/"; icon = builtins.fetchurl "https://monkeytype.com/images/favicon/apple-touch-icon.png"; } + { desktopName = "YouTube"; link = "https://www.youtube.com"; categories = [ "AudioVideo" ]; } ]; webAppBuilder = { desktopName diff --git a/odin.nix b/odin.nix index 528bf04..4f10195 100644 --- a/odin.nix +++ b/odin.nix @@ -1,32 +1,5 @@ { pkgs, lib, ... }: { - nixpkgs.overlays = [ - (final: prev: { - devEnvironment = (import ./environment.nix) { - enableCpp = true; - enableData = true; - enableGo = true; - enableHtml = true; - enableJavascript = true; - enableJava = true; - enableLatex = true; - enableNix = true; - enableOffice = true; - enablePython = true; - enableRust = true; - enableShell = true; - enableSpelling = true; - }; - - cocktail-bar-cli = final.callPackage ./custom/cocktail-bar-cli { }; - update-background = final.callPackage ./custom/update-background { backgrounds_directory = "$HOME/Immagini/Sfondi/1080+/1440+"; }; - lockscreen = final.callPackage ./custom/lockscreen { - palette = final.rice.colorPalette; - font = final.rice.font.normal; - }; - }) - ]; - home = { language.base = "it_IT.UTF-8"; keyboard = { @@ -34,8 +7,9 @@ options = [ "terminate:ctrl_alt_bksp" "compose:rctrl" ]; }; packages = with pkgs; [ - pulseaudio + # pulseaudio easyeffects + tex2nix kubectl docker-compose @@ -49,32 +23,33 @@ catgirl # IRC cava discord - element-desktop + droidcam + # element-desktop # matrix client evolution file + filelight # firefox - # gallery-dl - gnome.dconf-editor - gnome.eog - gnome.evince - gnomeExtensions.appindicator - gnomeExtensions.caffeine - gnomeExtensions.dash-to-dock - # gnomeExtensions.dynamic-panel-transparency - gnomeExtensions.just-perfection - gnomeExtensions.gtile - gnomeExtensions.vitals - gnome.file-roller - gnome.gnome-screenshot + gallery-dl + # gnome.dconf-editor + # gnome.eog + # gnome.evince + # gnomeExtensions.appindicator + # gnomeExtensions.caffeine + # gnomeExtensions.dash-to-dock + # # gnomeExtensions.dynamic-panel-transparency + # gnomeExtensions.gtile + # gnomeExtensions.just-perfection + # gnomeExtensions.vitals + # gnome.file-roller + # gnome.gnome-screenshot gnome.gnome-sound-recorder gnome.gnome-sudoku - gnome.gnome-system-monitor - gnome.gnome-tweaks - gnome.nautilus - gnome.quadrapassel - gnome.seahorse - gnome.sushi - tracker + # gnome.gnome-system-monitor + # gnome.gnome-tweaks + # gnome.nautilus + # gnome.quadrapassel + # gnome.seahorse + # gnome.sushi google-chrome gucharmap htop @@ -82,28 +57,36 @@ # hyperspace-cli inkscape jetbrains.datagrip + kcolorchooser + kompare + korganizer # keepassxc + kgpg + # kid3 # tag mp3 krita - # lutris + ksystemlog + lutris meld mmv-go mpv neofetch + nixos-option nix-prefetch-scripts nix-tree - nixos-option obsidian + okular openvpn + p7zip pavucontrol pcmanfm pentablet-driver procps - p7zip ripgrep skypeforlinux spotify tdesktop teams + tracker transmission-gtk unrar unzip @@ -134,27 +117,27 @@ ./modules/dircolors.nix ./modules/direnv.nix # ./modules/dunst.nix - # ./modules/fzf.nix + ./modules/fzf.nix ./modules/git.nix ./modules/go.nix ./modules/gpg.nix - ./modules/grobi.nix + # ./modules/grobi.nix ./modules/info.nix ./modules/java.nix - # ./modules/joystickwake.nix + ./modules/joystickwake.nix ./modules/jq.nix ./modules/kakoune.nix # ./modules/keepassxc.nix - ./modules/keychain.nix + # ./modules/keychain.nix ./modules/kitty.nix ./modules/latex.nix ./modules/lf.nix ./modules/libinput-gestures.nix # ./modules/lorri.nix ./modules/man.nix - # ./modules/mangohud.nix - # ./modules/megasync.nix - # ./modules/nix-index.nix + ./modules/mangohud.nix + ./modules/megasync.nix + ./modules/nix-index.nix # ./modules/noti.nix ./modules/obs-studio.nix ./modules/office.nix @@ -172,7 +155,7 @@ ./modules/syncthing.nix ./modules/terminator.nix ./modules/tmux.nix - ./modules/update_background.nix + # ./modules/update_background.nix ./modules/webapp.nix # ./modules/xidlehook.nix ./modules/zoxide.nix @@ -189,7 +172,7 @@ # blueman-applet.enable = true; # caffeine.enable = true; # cbatticon.enable = true; - gnome-keyring.enable = true; + # gnome-keyring.enable = true; # network-manager-applet.enable = true; # playerctld.enable = true; # poweralertd.enable = true; diff --git a/odin/base.nix b/odin/base.nix index 21bac8a..46c9273 100644 --- a/odin/base.nix +++ b/odin/base.nix @@ -60,7 +60,11 @@ # wayland = true; # nvidiaWayland = true; # }; - desktopManager.gnome.enable = true; + # desktopManager.gnome.enable = true; + desktopManager.plasma5 = { + enable = true; + runUsingSystemd = true; + }; # windowManager.bspwm.enable = true; # Configure keymap in X11 diff --git a/odin/odin-nvidia.nix b/odin/odin-nvidia.nix index c2fd154..0408c8c 100644 --- a/odin/odin-nvidia.nix +++ b/odin/odin-nvidia.nix @@ -14,7 +14,12 @@ displayManager.sddm = { enable = true; autoNumlock = true; + # enableHidpi = true; }; + # displayManager.gdm = { + # enable = true; + # wayland = false; + # }; }; hardware.nvidia.prime = { diff --git a/overlays.nix b/overlays.nix index d09297c..7b0b5db 100644 --- a/overlays.nix +++ b/overlays.nix @@ -1,3 +1,4 @@ [ (import (builtins.fetchTarball "https://github.com/oxalica/rust-overlay/archive/master.tar.gz")) + ]