diff --git a/nix-os/account.nix b/nix-os/account.nix index 492f09f..8d8a2ca 100644 --- a/nix-os/account.nix +++ b/nix-os/account.nix @@ -4,44 +4,46 @@ imports = [ ./unstable-packages.nix ]; - users.users.wroclaw = { - isNormalUser = true; - description = "Rafał"; - group = "wroclaw"; - extraGroups = [ - "users" - "wheel" - ] ++ lib.optional config.programs.adb.enable "adbusers"; - linger = true; - initialPassword = "nixos"; - packages = with pkgs; [ - firefox - (vivaldi.override { - proprietaryCodecs = true; - commandLineArgs = [ "--ozone-platform=wayland" ]; - }) - vesktop - unstablePkgs.vscode - gimp - inkscape - jitsi-meet-electron - krita - telegram-desktop - unstablePkgs.zettlr - ]; - }; - users.groups.wroclaw.gid = 1000; + config = { + users.users.wroclaw = { + isNormalUser = true; + description = "Rafał"; + group = "wroclaw"; + extraGroups = [ + "users" + "wheel" + ] ++ lib.optional config.programs.adb.enable "adbusers"; + linger = true; + initialPassword = "nixos"; + packages = with pkgs; [ + firefox + (vivaldi.override { + proprietaryCodecs = true; + commandLineArgs = [ "--ozone-platform=wayland" ]; + }) + vesktop + unstablePkgs.vscode + gimp + inkscape + jitsi-meet-electron + krita + telegram-desktop + unstablePkgs.zettlr + ]; + }; + users.groups.wroclaw.gid = 1000; - programs.steam = { - enable = true; - remotePlay.openFirewall = true; - }; + programs.steam = { + enable = true; + remotePlay.openFirewall = true; + }; - services.syncthing = { - enable = true; - user = "wroclaw"; - group = "wroclaw"; - dataDir = "/home/wroclaw"; - configDir = "/home/wroclaw/.config/syncthing"; + services.syncthing = { + enable = true; + user = "wroclaw"; + group = "wroclaw"; + dataDir = "/home/wroclaw"; + configDir = "/home/wroclaw/.config/syncthing"; + }; }; } diff --git a/nix-os/core.nix b/nix-os/core.nix index 34c6f41..a65ffe1 100644 --- a/nix-os/core.nix +++ b/nix-os/core.nix @@ -10,78 +10,80 @@ ./module-overrides.nix ./nix.nix ]; + config = { - # kernel - boot.kernelPackages = pkgs.linuxPackages_latest; + # kernel + boot.kernelPackages = pkgs.linuxPackages_latest; - # Enable networking - networking.networkmanager.enable = true; - - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - nix = { - channel.enable = false; - settings.experimental-features = [ - "no-url-literals" - ]; - nixPath = [ - "nixpkgs=${pkgs.selfExpr { useConfig = false; }}" - "systemNixpkgs=${pkgs.selfExpr { useConfig = true; name = "systemNixpkgs-self"; }}" - # don't garbage collect the nixpkgs input - "inputsNixpkgs=${inputs.nixpkgs}" - "nixos-system=/etc/nixos/default.nix" - ]; - }; - - # List packages installed in system profile. To search, run: - # $ nix search wget - environment.systemPackages = with pkgs; [ - waypipe - wget - ffmpeg - yt-dlp - htop - btop - fastfetch - smartmontools - ddrescue - ]; - programs.git.enable = true; - programs.git.config = { - commit.verbose = true; - init.defaultBranch = "main"; - merge.conflictstyle = "diff3"; - rerere.enabled = true; - }; - - # Use nix-index for command-not-found handler - programs.command-not-found.enable = false; - programs.nix-index = { - package = pkgs.nix-index.override { - nix-index-unwrapped = pkgs.nix-index-unwrapped.overrideAttrs (oldAttrs: { - patches = oldAttrs.patches or [] ++ [ - ../pkgs/by-name/ni/nix-index/cnfOutput.patch - ]; - }); + # Enable networking + networking.networkmanager.enable = true; + # Allow unfree packages + nixpkgs.config.allowUnfree = true; + nix = { + channel.enable = false; + settings.experimental-features = [ + "no-url-literals" + ]; + nixPath = [ + "nixpkgs=${pkgs.selfExpr { useConfig = false; }}" + "systemNixpkgs=${pkgs.selfExpr { useConfig = true; name = "systemNixpkgs-self"; }}" + # don't garbage collect the nixpkgs input + "inputsNixpkgs=${inputs.nixpkgs}" + "nixos-system=/etc/nixos/default.nix" + ]; }; - enable = true; - enableBashIntegration = true; - }; - # Enable fail2ban because of the OpenSSH server - services.fail2ban = { - enable = true; - maxretry = 10; - bantime = "7d"; - }; - - # Enable the OpenSSH daemon. - services.openssh = { - enable = true; - ports = [ - 22 - 8022 + # List packages installed in system profile. To search, run: + # $ nix search wget + environment.systemPackages = with pkgs; [ + waypipe + wget + ffmpeg + yt-dlp + htop + btop + fastfetch + smartmontools + ddrescue ]; + programs.git.enable = true; + programs.git.config = { + commit.verbose = true; + init.defaultBranch = "main"; + merge.conflictstyle = "diff3"; + rerere.enabled = true; + }; + + # Use nix-index for command-not-found handler + programs.command-not-found.enable = false; + programs.nix-index = { + package = pkgs.nix-index.override { + nix-index-unwrapped = pkgs.nix-index-unwrapped.overrideAttrs (oldAttrs: { + patches = oldAttrs.patches or [] ++ [ + ../pkgs/by-name/ni/nix-index/cnfOutput.patch + ]; + }); + + }; + enable = true; + enableBashIntegration = true; + }; + + # Enable fail2ban because of the OpenSSH server + services.fail2ban = { + enable = true; + maxretry = 10; + bantime = "7d"; + }; + + # Enable the OpenSSH daemon. + services.openssh = { + enable = true; + ports = [ + 22 + 8022 + ]; + }; }; } diff --git a/nix-os/docker.nix b/nix-os/docker.nix index 4583f6f..747b2f6 100644 --- a/nix-os/docker.nix +++ b/nix-os/docker.nix @@ -1,39 +1,41 @@ { lib, config, pkgs, ... }: { - config.virtualisation.docker = { - enable = true; - enableOnBoot = true; - storageDriver = if config.fileSystems."/".fsType == "btrfs" then "btrfs" else null; - rootless.enable = true; - rootless.setSocketVariable = true; - daemon.settings = { - default-address-pools = [ - {base = "10.64.0.0/10"; size = 24;} - ]; - bip = "10.127.0.1/16"; + config = { + virtualisation.docker = { + enable = true; + enableOnBoot = true; + storageDriver = if config.fileSystems."/".fsType == "btrfs" then "btrfs" else null; + rootless.enable = true; + rootless.setSocketVariable = true; + daemon.settings = { + default-address-pools = [ + {base = "10.64.0.0/10"; size = 24;} + ]; + bip = "10.127.0.1/16"; + }; + }; + users.users.indocker = { + isSystemUser = true; + hashedPassword = "!"; + uid = 900; + group = "indocker"; + }; + users.groups.indocker = { + gid = 900; + }; + environment.systemPackages = with pkgs; [ + docker-compose + ]; + + # Docker enables firewall anyway, let's enable the firewall for it if it's disabled + # TODO: Apply only when config.networking.firewall is false + networking.firewall = { + enable = lib.mkOverride 90 true; + allowedTCPPorts = lib.mkOverride 90 []; + allowedUDPPorts = lib.mkOverride 90 []; + allowedTCPPortRanges = lib.mkOverride 90 [{ from = 0; to = 65535;}]; + allowedUDPPortRanges = lib.mkOverride 90 [{ from = 0; to = 65535;}]; }; }; - config.users.users.indocker = { - isSystemUser = true; - hashedPassword = "!"; - uid = 900; - group = "indocker"; - }; - config.users.groups.indocker = { - gid = 900; - }; - config.environment.systemPackages = with pkgs; [ - docker-compose - ]; - - # Docker enables firewall anyway, let's enable the firewall for it if it's disabled - # TODO: Apply only when config.networking.firewall is false - config.networking.firewall = { - enable = lib.mkOverride 90 true; - allowedTCPPorts = lib.mkOverride 90 []; - allowedUDPPorts = lib.mkOverride 90 []; - allowedTCPPortRanges = lib.mkOverride 90 [{ from = 0; to = 65535;}]; - allowedUDPPortRanges = lib.mkOverride 90 [{ from = 0; to = 65535;}]; - }; } diff --git a/nix-os/locale.nix b/nix-os/locale.nix index faf0f89..3f56bde 100644 --- a/nix-os/locale.nix +++ b/nix-os/locale.nix @@ -1,5 +1,3 @@ -{ ... }: - { config = { # Set your time zone. diff --git a/nix-os/nvidia.nix b/nix-os/nvidia.nix index 2c10f15..a9433f3 100644 --- a/nix-os/nvidia.nix +++ b/nix-os/nvidia.nix @@ -1,28 +1,30 @@ { config, lib, pkgs, ...}: { - hardware.graphics = { - enable = true; - enable32Bit = true; - }; - - # Workaround for nvidia driver ghost display - boot.kernelParams = [ "nvidia_drm.fbdev=1" ]; - - services.xserver.videoDrivers = ["nvidia"]; - hardware.nvidia = { - modesetting.enable = true; - powerManagement.enable = true; - open = false; - nvidiaSettings = true; - package = config.boot.kernelPackages.nvidiaPackages.mkDriver { - version = "570.133.07"; - sha256_64bit = "sha256-LUPmTFgb5e9VTemIixqpADfvbUX1QoTT2dztwI3E3CY="; - sha256_aarch64 = "sha256-yTovUno/1TkakemRlNpNB91U+V04ACTMwPEhDok7jI0="; - openSha256 = "sha256-9l8N83Spj0MccA8+8R1uqiXBS0Ag4JrLPjrU3TaXHnM="; - settingsSha256 = "sha256-XMk+FvTlGpMquM8aE8kgYK2PIEszUZD2+Zmj2OpYrzU="; - persistencedSha256 = "sha256-G1V7JtHQbfnSRfVjz/LE2fYTlh9okpCbE4dfX9oYSg8="; + config = { + hardware.graphics = { + enable = true; + enable32Bit = true; }; + + # Workaround for nvidia driver ghost display + boot.kernelParams = [ "nvidia_drm.fbdev=1" ]; + + services.xserver.videoDrivers = ["nvidia"]; + hardware.nvidia = { + modesetting.enable = true; + powerManagement.enable = true; + open = false; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.mkDriver { + version = "570.133.07"; + sha256_64bit = "sha256-LUPmTFgb5e9VTemIixqpADfvbUX1QoTT2dztwI3E3CY="; + sha256_aarch64 = "sha256-yTovUno/1TkakemRlNpNB91U+V04ACTMwPEhDok7jI0="; + openSha256 = "sha256-9l8N83Spj0MccA8+8R1uqiXBS0Ag4JrLPjrU3TaXHnM="; + settingsSha256 = "sha256-XMk+FvTlGpMquM8aE8kgYK2PIEszUZD2+Zmj2OpYrzU="; + persistencedSha256 = "sha256-G1V7JtHQbfnSRfVjz/LE2fYTlh9okpCbE4dfX9oYSg8="; + }; + }; + nixpkgs.config.nvidia.acceptLicense = true; }; - nixpkgs.config.nvidia.acceptLicense = true; } diff --git a/nix-os/polkit/disable-shutdown.nix b/nix-os/polkit/disable-shutdown.nix index 660c32a..dc7343e 100644 --- a/nix-os/polkit/disable-shutdown.nix +++ b/nix-os/polkit/disable-shutdown.nix @@ -1,44 +1,44 @@ -{ ... }: - { - security.polkit.extraConfig = '' - polkit.addRule(function(action, subject) { - polkit.log("action=" + action); - polkit.log("subject=" + subject); - if ( - action.id == "org.freedesktop.login1.halt" || - action.id == "org.freedesktop.login1.halt-ignore-inhibit" || - action.id == "org.freedesktop.login1.halt-multiple-sessions" || - action.id == "org.freedesktop.login1.hibernate" || - action.id == "org.freedesktop.login1.hibernate-ignore-inhibit" || - action.id == "org.freedesktop.login1.hibernate-multiple-sessions" || - action.id == "org.freedesktop.login1.inhibit-block-idle" || - action.id == "org.freedesktop.login1.inhibit-block-shutdown" || - action.id == "org.freedesktop.login1.inhibit-block-sleep" || - action.id == "org.freedesktop.login1.inhibit-handle-hibernate-key" || - action.id == "org.freedesktop.login1.inhibit-handle-lid-switch" || - action.id == "org.freedesktop.login1.inhibit-handle-power-key" || - action.id == "org.freedesktop.login1.inhibit-handle-reboot-key" || - action.id == "org.freedesktop.login1.inhibit-handle-suspend-key" || - action.id == "org.freedesktop.login1.power-off" || - action.id == "org.freedesktop.login1.power-off-ignore-inhibit" || - action.id == "org.freedesktop.login1.power-off-multiple-sessions" || - action.id == "org.freedesktop.login1.reboot" || - action.id == "org.freedesktop.login1.reboot-ignore-inhibit" || - action.id == "org.freedesktop.login1.reboot-multiple-sessions" || - action.id == "org.freedesktop.login1.set-reboot-parameter" || - action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-entry" || - action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-menu" || - action.id == "org.freedesktop.login1.set-reboot-to-firmware-setup" || - action.id == "org.freedesktop.login1.set-self-linger" || - action.id == "org.freedesktop.login1.set-user-linger" || - action.id == "org.freedesktop.login1.set-wall-message" || - action.id == "org.freedesktop.login1.suspend" || - action.id == "org.freedesktop.login1.suspend-ignore-inhibit" || - action.id == "org.freedesktop.login1.suspend-multiple-sessions" - ) { - return subject.active ? polkit.Result.AUTH_ADMIN : polkit.Result.NO; - }; - }); - ''; + config = { + security.polkit.extraConfig = '' + polkit.addRule(function(action, subject) { + polkit.log("action=" + action); + polkit.log("subject=" + subject); + if ( + action.id == "org.freedesktop.login1.halt" || + action.id == "org.freedesktop.login1.halt-ignore-inhibit" || + action.id == "org.freedesktop.login1.halt-multiple-sessions" || + action.id == "org.freedesktop.login1.hibernate" || + action.id == "org.freedesktop.login1.hibernate-ignore-inhibit" || + action.id == "org.freedesktop.login1.hibernate-multiple-sessions" || + action.id == "org.freedesktop.login1.inhibit-block-idle" || + action.id == "org.freedesktop.login1.inhibit-block-shutdown" || + action.id == "org.freedesktop.login1.inhibit-block-sleep" || + action.id == "org.freedesktop.login1.inhibit-handle-hibernate-key" || + action.id == "org.freedesktop.login1.inhibit-handle-lid-switch" || + action.id == "org.freedesktop.login1.inhibit-handle-power-key" || + action.id == "org.freedesktop.login1.inhibit-handle-reboot-key" || + action.id == "org.freedesktop.login1.inhibit-handle-suspend-key" || + action.id == "org.freedesktop.login1.power-off" || + action.id == "org.freedesktop.login1.power-off-ignore-inhibit" || + action.id == "org.freedesktop.login1.power-off-multiple-sessions" || + action.id == "org.freedesktop.login1.reboot" || + action.id == "org.freedesktop.login1.reboot-ignore-inhibit" || + action.id == "org.freedesktop.login1.reboot-multiple-sessions" || + action.id == "org.freedesktop.login1.set-reboot-parameter" || + action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-entry" || + action.id == "org.freedesktop.login1.set-reboot-to-boot-loader-menu" || + action.id == "org.freedesktop.login1.set-reboot-to-firmware-setup" || + action.id == "org.freedesktop.login1.set-self-linger" || + action.id == "org.freedesktop.login1.set-user-linger" || + action.id == "org.freedesktop.login1.set-wall-message" || + action.id == "org.freedesktop.login1.suspend" || + action.id == "org.freedesktop.login1.suspend-ignore-inhibit" || + action.id == "org.freedesktop.login1.suspend-multiple-sessions" + ) { + return subject.active ? polkit.Result.AUTH_ADMIN : polkit.Result.NO; + }; + }); + ''; + }; } diff --git a/nix-os/razer.nix b/nix-os/razer.nix index f1df5ff..202541d 100644 --- a/nix-os/razer.nix +++ b/nix-os/razer.nix @@ -18,29 +18,31 @@ }) ]; - hardware.openrazer = { - enable = true; - users = [ - "wroclaw" - ]; - # NIXPKGS-PR: 384992 - packages = let - oldVersion = pkgs.python3Packages.openrazer-daemon.version; - version = "3.10.1"; - in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: { - version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version; - src = pkgs.fetchFromGitHub { - owner = "openrazer"; - repo = "openrazer"; - tag = "v${version}"; - hash = "sha256-igrGx7Y6ENtZatJCTAW43/0q6ZjljJ9/kU3QFli4yIU="; + config = { + hardware.openrazer = { + enable = true; + users = [ + "wroclaw" + ]; + # NIXPKGS-PR: 384992 + packages = let + oldVersion = pkgs.python3Packages.openrazer-daemon.version; + version = "3.10.1"; + in lib.mapAttrs (_: package: package.overrideAttrs (oldAttrs: { + version = lib.replaceStrings [ oldVersion ] [ version ] oldAttrs.version; + src = pkgs.fetchFromGitHub { + owner = "openrazer"; + repo = "openrazer"; + tag = "v${version}"; + hash = "sha256-igrGx7Y6ENtZatJCTAW43/0q6ZjljJ9/kU3QFli4yIU="; + }; + })) { + kernel = config.boot.kernelPackages.openrazer; + daemon = pkgs.python3Packages.openrazer-daemon; }; - })) { - kernel = config.boot.kernelPackages.openrazer; - daemon = pkgs.python3Packages.openrazer-daemon; }; + environment.systemPackages = with pkgs; [ + polychromatic + ]; }; - environment.systemPackages = with pkgs; [ - polychromatic - ]; } diff --git a/nix-os/shell.nix b/nix-os/shell.nix index 01f59ea..e30c9a7 100644 --- a/nix-os/shell.nix +++ b/nix-os/shell.nix @@ -25,136 +25,139 @@ in imports = [ ./unstable-packages.nix ]; - environment.systemPackages = with pkgs; [ - aliasDrag - rangerGit - ripgrep - kitty - zoxide - ]; - programs.bash.shellInit = '' - HISTCONTROL=ignoreboth - ''; + config = { + environment.systemPackages = with pkgs; [ + aliasDrag + rangerGit + ripgrep + kitty + zoxide + ]; - programs.bash.interactiveShellInit = '' - HISTCONTROL=ignoreboth - if test -n "$KITTY_INSTALLATION_DIR"; then - export KITTY_SHELL_INTEGRATION="enabled,no-sudo" - source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash" - fi - eval "''$(zoxide init bash)" - alias bye=exit - ''; + programs.bash.shellInit = '' + HISTCONTROL=ignoreboth + ''; - environment.etc."xdg/kitty/kitty.conf".text = '' - font_family MesloLGS Nerd Font - font_size 10.0 - scrollback_lines 10000 - window_border_width 0.5 - window_padding_width 3 - ${if config.services.xserver.desktopManager.gnome.enable then "hide_window_decorations yes" else ""} - background_opacity 0.8 - dynamic_background_opacity yes + programs.bash.interactiveShellInit = '' + HISTCONTROL=ignoreboth + if test -n "$KITTY_INSTALLATION_DIR"; then + export KITTY_SHELL_INTEGRATION="enabled,no-sudo" + source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash" + fi + eval "''$(zoxide init bash)" + alias bye=exit + ''; - map kitty_mod+alt+c copy_ansi_to_clipboard - ''; + environment.etc."xdg/kitty/kitty.conf".text = '' + font_family MesloLGS Nerd Font + font_size 10.0 + scrollback_lines 10000 + window_border_width 0.5 + window_padding_width 3 + ${if config.services.xserver.desktopManager.gnome.enable then "hide_window_decorations yes" else ""} + background_opacity 0.8 + dynamic_background_opacity yes - environment.etc."ranger/rc.conf".text = '' - eval import os; fm.set_option_from_string("preview_images", "true") if "KITTY_INSTALLATION_DIR" in os.environ else None; - eval import os; fm.set_option_from_string("preview_images_method", "kitty") if "KITTY_INSTALLATION_DIR" in os.environ else None; - set vcs_aware true - set show_hidden true + map kitty_mod+alt+c copy_ansi_to_clipboard + ''; - alias drag shell ${pkgs.ripdrag}/bin/ripdrag -Axd %p & - map drag - ''; + environment.etc."ranger/rc.conf".text = '' + eval import os; fm.set_option_from_string("preview_images", "true") if "KITTY_INSTALLATION_DIR" in os.environ else None; + eval import os; fm.set_option_from_string("preview_images_method", "kitty") if "KITTY_INSTALLATION_DIR" in os.environ else None; + set vcs_aware true + set show_hidden true - environment.etc."ranger/plugins/zoxide.py".source = pkgs.fetchFromGitHub { - owner = "jchook"; - repo = "ranger-zoxide"; - rev = "281828de060299f73fe0b02fcabf4f2f2bd78ab3"; - hash = "sha256-JEuyYSVa1NS3aftezEJx/k19lwwzf7XhqBCL0jH6VT4="; - } + /__init__.py; + alias drag shell ${pkgs.ripdrag}/bin/ripdrag -Axd %p & + map drag + ''; - programs.direnv.enable = true; + environment.etc."ranger/plugins/zoxide.py".source = pkgs.fetchFromGitHub { + owner = "jchook"; + repo = "ranger-zoxide"; + rev = "281828de060299f73fe0b02fcabf4f2f2bd78ab3"; + hash = "sha256-JEuyYSVa1NS3aftezEJx/k19lwwzf7XhqBCL0jH6VT4="; + } + /__init__.py; - programs.neovim = { - enable = true; - viAlias = true; - vimAlias = true; - configure = { - customRC = '' - set number - set hlsearch - set incsearch - set tabstop=4 - set softtabstop=4 - set shiftwidth=4 - set expandtab - set autoindent - set updatetime=500 - colorscheme vim + programs.direnv.enable = true; - syntax on - set encoding=utf-8 - set wildmode=longest,list,full - set listchars=space:·,tab:┄┄» - set indentkeys-=0# + programs.neovim = { + enable = true; + viAlias = true; + vimAlias = true; + configure = { + customRC = '' + set number + set hlsearch + set incsearch + set tabstop=4 + set softtabstop=4 + set shiftwidth=4 + set expandtab + set autoindent + set updatetime=500 + colorscheme vim - " rainbow-delimeters-nvim - let g:rainbow_delimiters = { - \ 'strategy': { - \ ${"''"}: rainbow_delimiters#strategy.global, - \ }, - \ } + syntax on + set encoding=utf-8 + set wildmode=longest,list,full + set listchars=space:·,tab:┄┄» + set indentkeys-=0# - " vim-gitguter - set signcolumn=yes - highlight SignColumn NONE - highlight GitGutterAdd ctermfg=2 guifg=#2ea043 - highlight GitGutterChange ctermfg=4 guifg=#0078d4 - highlight GitGutterDelete ctermfg=1 guifg=#f85149 + " rainbow-delimeters-nvim + let g:rainbow_delimiters = { + \ 'strategy': { + \ ${"''"}: rainbow_delimiters#strategy.global, + \ }, + \ } - lua require('guess-indent').setup {} - ''; - packages.myVimPackage = with pkgs.vimPlugins; { - start = [ - guess-indent-nvim - vim-visual-multi - autoclose-nvim - rainbow-delimiters-nvim - vimagit - vim-gitgutter - ]; + " vim-gitguter + set signcolumn=yes + highlight SignColumn NONE + highlight GitGutterAdd ctermfg=2 guifg=#2ea043 + highlight GitGutterChange ctermfg=4 guifg=#0078d4 + highlight GitGutterDelete ctermfg=1 guifg=#f85149 + + lua require('guess-indent').setup {} + ''; + packages.myVimPackage = with pkgs.vimPlugins; { + start = [ + guess-indent-nvim + vim-visual-multi + autoclose-nvim + rainbow-delimiters-nvim + vimagit + vim-gitgutter + ]; + }; }; }; - }; - environment.variables = lib.mkIf config.programs.neovim.enable rec { - EDITOR = "/run/current-system/sw/bin/nvim"; - VISUAL = EDITOR; - }; + environment.variables = lib.mkIf config.programs.neovim.enable rec { + EDITOR = "/run/current-system/sw/bin/nvim"; + VISUAL = EDITOR; + }; - programs.starship = { - enable = true; - settings = { - format = "$all$line_break\${custom.ranger}$jobs$battery$time$status$os$container$shell$character"; - directory = { - truncation_length = 5; - truncation_symbol = "…/"; - }; - hostname = { - ssh_only = false; - }; - username = { - show_always = true; - }; - status.disabled = false; - custom.ranger = { - when = "test $RANGER_LEVEL"; - command = "echo \"✦\""; - style = "bold 208"; + programs.starship = { + enable = true; + settings = { + format = "$all$line_break\${custom.ranger}$jobs$battery$time$status$os$container$shell$character"; + directory = { + truncation_length = 5; + truncation_symbol = "…/"; + }; + hostname = { + ssh_only = false; + }; + username = { + show_always = true; + }; + status.disabled = false; + custom.ranger = { + when = "test $RANGER_LEVEL"; + command = "echo \"✦\""; + style = "bold 208"; + }; }; }; }; diff --git a/nix-os/virtualization.nix b/nix-os/virtualization.nix index c1e062f..38b8116 100644 --- a/nix-os/virtualization.nix +++ b/nix-os/virtualization.nix @@ -2,15 +2,17 @@ { lib, config, pkgs, ... }: { - #virtualisation.waydroid.enable = true; - programs.virt-manager.enable = true; - virtualisation.libvirtd = { - enable = true; - qemu.ovmf = { + config = { + #virtualisation.waydroid.enable = true; + programs.virt-manager.enable = true; + virtualisation.libvirtd = { enable = true; - packages = [ - pkgs.OVMFFull.fd - ]; + qemu.ovmf = { + enable = true; + packages = [ + pkgs.OVMFFull.fd + ]; + }; }; }; } diff --git a/nix-os/xdg-default-apps.nix b/nix-os/xdg-default-apps.nix index 5033d02..632c06d 100644 --- a/nix-os/xdg-default-apps.nix +++ b/nix-os/xdg-default-apps.nix @@ -1,137 +1,137 @@ -{ ... }: - { - xdg.mime.enable = true; - xdg.mime.defaultApplications = { - # Browser - "x-scheme-handler/http" = "vivaldi-stable.desktop"; - "application/xhtml+xml" = "vivaldi-stable.desktop"; - "text/html" = "vivaldi-stable.desktop"; - "x-scheme-handler/https" = "vivaldi-stable.desktop"; - "application/pdf" = "vivaldi-stable.desktop"; + config = { + xdg.mime.enable = true; + xdg.mime.defaultApplications = { + # Browser + "x-scheme-handler/http" = "vivaldi-stable.desktop"; + "application/xhtml+xml" = "vivaldi-stable.desktop"; + "text/html" = "vivaldi-stable.desktop"; + "x-scheme-handler/https" = "vivaldi-stable.desktop"; + "application/pdf" = "vivaldi-stable.desktop"; - # Audio - "audio/aiff" = "mpv.desktop"; - "audio/basic" = "mpv.desktop"; - "audio/it" = "mpv.desktop"; - "audio/make" = "mpv.desktop"; - "audio/make.my.funk" = "mpv.desktop"; - "audio/mid" = "mpv.desktop"; - "audio/midi" = "mpv.desktop"; - "audio/mod" = "mpv.desktop"; - "audio/mpeg" = "mpv.desktop"; - "audio/mpeg3" = "mpv.desktop"; - "audio/nspaudio" = "mpv.desktop"; - "audio/s3m" = "mpv.desktop"; - "audio/tsp-audio" = "mpv.desktop"; - "audio/tsplayer" = "mpv.desktop"; - "audio/vnd.qcelp" = "mpv.desktop"; - "audio/voc" = "mpv.desktop"; - "audio/voxware" = "mpv.desktop"; - "audio/wav" = "mpv.desktop"; - "audio/x-adpcm" = "mpv.desktop"; - "audio/x-aiff" = "mpv.desktop"; - "audio/x-au" = "mpv.desktop"; - "audio/x-gsm" = "mpv.desktop"; - "audio/x-jam" = "mpv.desktop"; - "audio/x-liveaudio" = "mpv.desktop"; - "audio/x-mid" = "mpv.desktop"; - "audio/x-midi" = "mpv.desktop"; - "audio/x-mod" = "mpv.desktop"; - "audio/x-mpeg" = "mpv.desktop"; - "audio/x-mpeg-3" = "mpv.desktop"; - "audio/x-mpequrl" = "mpv.desktop"; - "audio/x-nspaudio" = "mpv.desktop"; - "audio/x-pn-realaudio" = "mpv.desktop"; - "audio/x-pn-realaudio-plugin" = "mpv.desktop"; - "audio/x-psid" = "mpv.desktop"; - "audio/x-realaudio" = "mpv.desktop"; - "audio/x-twinvq" = "mpv.desktop"; - "audio/x-twinvq-plugin" = "mpv.desktop"; - "audio/x-vnd.audioexplosion.mjuicemediafile" = "mpv.desktop"; - "audio/x-voc" = "mpv.desktop"; - "audio/x-wav" = "mpv.desktop"; - "audio/xm" = "mpv.desktop"; + # Audio + "audio/aiff" = "mpv.desktop"; + "audio/basic" = "mpv.desktop"; + "audio/it" = "mpv.desktop"; + "audio/make" = "mpv.desktop"; + "audio/make.my.funk" = "mpv.desktop"; + "audio/mid" = "mpv.desktop"; + "audio/midi" = "mpv.desktop"; + "audio/mod" = "mpv.desktop"; + "audio/mpeg" = "mpv.desktop"; + "audio/mpeg3" = "mpv.desktop"; + "audio/nspaudio" = "mpv.desktop"; + "audio/s3m" = "mpv.desktop"; + "audio/tsp-audio" = "mpv.desktop"; + "audio/tsplayer" = "mpv.desktop"; + "audio/vnd.qcelp" = "mpv.desktop"; + "audio/voc" = "mpv.desktop"; + "audio/voxware" = "mpv.desktop"; + "audio/wav" = "mpv.desktop"; + "audio/x-adpcm" = "mpv.desktop"; + "audio/x-aiff" = "mpv.desktop"; + "audio/x-au" = "mpv.desktop"; + "audio/x-gsm" = "mpv.desktop"; + "audio/x-jam" = "mpv.desktop"; + "audio/x-liveaudio" = "mpv.desktop"; + "audio/x-mid" = "mpv.desktop"; + "audio/x-midi" = "mpv.desktop"; + "audio/x-mod" = "mpv.desktop"; + "audio/x-mpeg" = "mpv.desktop"; + "audio/x-mpeg-3" = "mpv.desktop"; + "audio/x-mpequrl" = "mpv.desktop"; + "audio/x-nspaudio" = "mpv.desktop"; + "audio/x-pn-realaudio" = "mpv.desktop"; + "audio/x-pn-realaudio-plugin" = "mpv.desktop"; + "audio/x-psid" = "mpv.desktop"; + "audio/x-realaudio" = "mpv.desktop"; + "audio/x-twinvq" = "mpv.desktop"; + "audio/x-twinvq-plugin" = "mpv.desktop"; + "audio/x-vnd.audioexplosion.mjuicemediafile" = "mpv.desktop"; + "audio/x-voc" = "mpv.desktop"; + "audio/x-wav" = "mpv.desktop"; + "audio/xm" = "mpv.desktop"; - # Video - "video/animaflex" = "mpv.desktop"; - "video/avi" = "mpv.desktop"; - "video/avs-video" = "mpv.desktop"; - "video/dl" = "mpv.desktop"; - "video/fli" = "mpv.desktop"; - "video/gl" = "mpv.desktop"; - "video/mpeg" = "mpv.desktop"; - "video/msvideo" = "mpv.desktop"; - "video/quicktime" = "mpv.desktop"; - "video/vdo" = "mpv.desktop"; - "video/vivo" = "mpv.desktop"; - "video/vnd.rn-realvideo" = "mpv.desktop"; - "video/vnd.vivo" = "mpv.desktop"; - "video/vosaic" = "mpv.desktop"; - "video/x-amt-demorun" = "mpv.desktop"; - "video/x-amt-showrun" = "mpv.desktop"; - "video/x-atomic3d-feature" = "mpv.desktop"; - "video/x-dl" = "mpv.desktop"; - "video/x-dv" = "mpv.desktop"; - "video/x-fli" = "mpv.desktop"; - "video/x-gl" = "mpv.desktop"; - "video/x-isvideo" = "mpv.desktop"; - "video/x-motion-jpeg" = "mpv.desktop"; - "video/x-mpeg" = "mpv.desktop"; - "video/x-mpeq2a" = "mpv.desktop"; - "video/x-ms-asf" = "mpv.desktop"; - "video/x-ms-asf-plugin" = "mpv.desktop"; - "video/x-msvideo" = "mpv.desktop"; - "video/x-qtc" = "mpv.desktop"; - "video/x-scm" = "mpv.desktop"; - "video/x-sgi-movie" = "mpv.desktop"; + # Video + "video/animaflex" = "mpv.desktop"; + "video/avi" = "mpv.desktop"; + "video/avs-video" = "mpv.desktop"; + "video/dl" = "mpv.desktop"; + "video/fli" = "mpv.desktop"; + "video/gl" = "mpv.desktop"; + "video/mpeg" = "mpv.desktop"; + "video/msvideo" = "mpv.desktop"; + "video/quicktime" = "mpv.desktop"; + "video/vdo" = "mpv.desktop"; + "video/vivo" = "mpv.desktop"; + "video/vnd.rn-realvideo" = "mpv.desktop"; + "video/vnd.vivo" = "mpv.desktop"; + "video/vosaic" = "mpv.desktop"; + "video/x-amt-demorun" = "mpv.desktop"; + "video/x-amt-showrun" = "mpv.desktop"; + "video/x-atomic3d-feature" = "mpv.desktop"; + "video/x-dl" = "mpv.desktop"; + "video/x-dv" = "mpv.desktop"; + "video/x-fli" = "mpv.desktop"; + "video/x-gl" = "mpv.desktop"; + "video/x-isvideo" = "mpv.desktop"; + "video/x-motion-jpeg" = "mpv.desktop"; + "video/x-mpeg" = "mpv.desktop"; + "video/x-mpeq2a" = "mpv.desktop"; + "video/x-ms-asf" = "mpv.desktop"; + "video/x-ms-asf-plugin" = "mpv.desktop"; + "video/x-msvideo" = "mpv.desktop"; + "video/x-qtc" = "mpv.desktop"; + "video/x-scm" = "mpv.desktop"; + "video/x-sgi-movie" = "mpv.desktop"; - # Image - "image/bmp" = "qimgv.desktop"; - "image/cmu-raster" = "qimgv.desktop"; - "image/fif" = "qimgv.desktop"; - "image/florian" = "qimgv.desktop"; - "image/g3fax" = "qimgv.desktop"; - "image/gif" = "qimgv.desktop"; - "image/ief" = "qimgv.desktop"; - "image/jpeg" = "qimgv.desktop"; - "image/jutvision" = "qimgv.desktop"; - "image/naplps" = "qimgv.desktop"; - "image/pict" = "qimgv.desktop"; - "image/pjpeg" = "qimgv.desktop"; - "image/png" = "qimgv.desktop"; - "image/tiff" = "qimgv.desktop"; - "image/vasa" = "qimgv.desktop"; - "image/vnd.dwg" = "qimgv.desktop"; - "image/vnd.fpx" = "qimgv.desktop"; - "image/vnd.net-fpx" = "qimgv.desktop"; - "image/vnd.rn-realflash" = "qimgv.desktop"; - "image/vnd.rn-realpix" = "qimgv.desktop"; - "image/vnd.wap.wbmp" = "qimgv.desktop"; - "image/vnd.xiff" = "qimgv.desktop"; - "image/x-cmu-raster" = "qimgv.desktop"; - "image/x-dwg" = "qimgv.desktop"; - "image/x-icon" = "qimgv.desktop"; - "image/x-jg" = "qimgv.desktop"; - "image/x-jps" = "qimgv.desktop"; - "image/x-niff" = "qimgv.desktop"; - "image/x-pcx" = "qimgv.desktop"; - "image/x-pict" = "qimgv.desktop"; - "image/x-portable-anymap" = "qimgv.desktop"; - "image/x-portable-bitmap" = "qimgv.desktop"; - "image/x-portable-graymap" = "qimgv.desktop"; - "image/x-portable-greymap" = "qimgv.desktop"; - "image/x-portable-pixmap" = "qimgv.desktop"; - "image/x-quicktime" = "qimgv.desktop"; - "image/x-rgb" = "qimgv.desktop"; - "image/x-tiff" = "qimgv.desktop"; - "image/x-windows-bmp" = "qimgv.desktop"; - "image/x-xbitmap" = "qimgv.desktop"; - "image/x-xbm" = "qimgv.desktop"; - "image/x-xpixmap" = "qimgv.desktop"; - "image/x-xwd" = "qimgv.desktop"; - "image/x-xwindowdump" = "qimgv.desktop"; - "image/xbm" = "qimgv.desktop"; - "image/xpm" = "qimgv.desktop"; + # Image + "image/bmp" = "qimgv.desktop"; + "image/cmu-raster" = "qimgv.desktop"; + "image/fif" = "qimgv.desktop"; + "image/florian" = "qimgv.desktop"; + "image/g3fax" = "qimgv.desktop"; + "image/gif" = "qimgv.desktop"; + "image/ief" = "qimgv.desktop"; + "image/jpeg" = "qimgv.desktop"; + "image/jutvision" = "qimgv.desktop"; + "image/naplps" = "qimgv.desktop"; + "image/pict" = "qimgv.desktop"; + "image/pjpeg" = "qimgv.desktop"; + "image/png" = "qimgv.desktop"; + "image/tiff" = "qimgv.desktop"; + "image/vasa" = "qimgv.desktop"; + "image/vnd.dwg" = "qimgv.desktop"; + "image/vnd.fpx" = "qimgv.desktop"; + "image/vnd.net-fpx" = "qimgv.desktop"; + "image/vnd.rn-realflash" = "qimgv.desktop"; + "image/vnd.rn-realpix" = "qimgv.desktop"; + "image/vnd.wap.wbmp" = "qimgv.desktop"; + "image/vnd.xiff" = "qimgv.desktop"; + "image/x-cmu-raster" = "qimgv.desktop"; + "image/x-dwg" = "qimgv.desktop"; + "image/x-icon" = "qimgv.desktop"; + "image/x-jg" = "qimgv.desktop"; + "image/x-jps" = "qimgv.desktop"; + "image/x-niff" = "qimgv.desktop"; + "image/x-pcx" = "qimgv.desktop"; + "image/x-pict" = "qimgv.desktop"; + "image/x-portable-anymap" = "qimgv.desktop"; + "image/x-portable-bitmap" = "qimgv.desktop"; + "image/x-portable-graymap" = "qimgv.desktop"; + "image/x-portable-greymap" = "qimgv.desktop"; + "image/x-portable-pixmap" = "qimgv.desktop"; + "image/x-quicktime" = "qimgv.desktop"; + "image/x-rgb" = "qimgv.desktop"; + "image/x-tiff" = "qimgv.desktop"; + "image/x-windows-bmp" = "qimgv.desktop"; + "image/x-xbitmap" = "qimgv.desktop"; + "image/x-xbm" = "qimgv.desktop"; + "image/x-xpixmap" = "qimgv.desktop"; + "image/x-xwd" = "qimgv.desktop"; + "image/x-xwindowdump" = "qimgv.desktop"; + "image/xbm" = "qimgv.desktop"; + "image/xpm" = "qimgv.desktop"; + }; }; }