From 5f86afd4faad5aec07ad91bfe57d4154f389324d Mon Sep 17 00:00:00 2001 From: emily Date: Thu, 22 Feb 2024 20:20:07 +0100 Subject: [PATCH] bug fixes --- config/common/default.nix | 30 ++++++-- config/common/networking.nix | 4 + config/common/users/emily/default.nix | 20 ++++- config/hosts/ryuuko/configuration.nix | 4 +- .../ryuuko/hardware-configuration-t460.nix | 46 ++++++++++++ config/profiles/graphical/default.nix | 75 +++++++++++++------ .../graphical/files/rofi/confirm.rasi | 4 - .../graphical/files/rofi/shared/colors.rasi | 4 - .../graphical/files/rofi/shared/fonts.rasi | 6 -- .../graphical/{ => files}/waybar-style.css | 0 config/profiles/graphical/nixvim.nix | 13 ++-- 11 files changed, 155 insertions(+), 51 deletions(-) create mode 100644 config/hosts/ryuuko/hardware-configuration-t460.nix rename config/profiles/graphical/{ => files}/waybar-style.css (100%) diff --git a/config/common/default.nix b/config/common/default.nix index ae5484c..b20e200 100644 --- a/config/common/default.nix +++ b/config/common/default.nix @@ -11,6 +11,7 @@ with lib; { environment.systemPackages = with pkgs; [ kitty.terminfo bat + dig ripgrep uutils-coreutils git @@ -38,26 +39,28 @@ with lib; { system.activationScripts.motd.text = let cfg = config.system.nixos; in '' - root=/nix/var/lib/deployment + root=/var/lib/deployment mkdir -p $root date "+%s" > $root/date cat << EOF > $root/motd Welcome to ${cfg.distroName} ${cfg.release} ("${cfg.codeName}") on - $(${pkgs.figlet}/bin/figlet -lt ${config.networking.hostName} | sed -e 's/[[:space:]]*$//').${config.networking.domain} + $(${pkgs.figlet}/bin/figlet -lt -f slant ${config.networking.hostName} | ${pkgs.gnused}/bin/sed -e 's/[[:space:]]*$//').${config.networking.domain} + + Last deployed on $(date "+%F %T %Z" -d @$(cat "$root/date")) - Last deployed on $(date "+%F %T %Z" -d @$(cat "$deployment_folder/date")) EOF ''; - users.motdFile = "/nix/var/lib/deployment/motd"; + users.motdFile = "/var/lib/deployment/motd"; nix.gc.automatic = true; nix.gc.options = "--delete-older-than 7d"; nix.optimise.automatic = true; nix.settings.experimental-features = [ "nix-command" "flakes" ]; - nix.settings.trusted-users = [ "@wheel" ]; + nix.settings.trusted-users = [ "root" "@wheel" ]; nixpkgs.hostPlatform.system = "x86_64-linux"; + nixpkgs.config.allowUnfree = true; boot.tmp.cleanOnBoot = mkDefault true; services.journald.extraConfig = "SystemMaxUse=256M"; @@ -66,8 +69,23 @@ with lib; { security.sudo-rs = { enable = true; execWheelOnly = true; + wheelNeedsPassword = false; }; - users.mutableUsers = false; + users.mutableUsers = mkDefault false; + + i18n.defaultLocale = mkDefault "en_EU.UTF-8"; + i18n.glibcLocales = (pkgs.glibcLocales.overrideAttrs (orig: { + postPatch = orig.postPatch + '' + cp "${../files/en_EU}" localedata/locales/en_EU + echo 'en_EU.UTF-8/UTF-8 \' >>localedata/SUPPORTED + ''; + })); + services.xserver = { + layout = "de"; + xkbVariant = "neo_qwerty"; + }; + console.useXkbConfig = true; + console.earlySetup = true; services.fprintd.enable = config.kyouma.machine-type.graphical; diff --git a/config/common/networking.nix b/config/common/networking.nix index 229a460..6e7197e 100644 --- a/config/common/networking.nix +++ b/config/common/networking.nix @@ -11,5 +11,9 @@ services.resolved = { enable = true; dnssec = "true"; + extraConfig = '' + DNS = [2a05:f480:1800:d2e::1]:853#resolve.solitary.social 80.240.30.163:853#resolve.solitary.social [2a01:4f8:1c0c:6c89::1]:853#resolve.nyantec.com 116.203.220.161:853#resolve.nyantec.com + DNSOverTLS = true + ''; }; } diff --git a/config/common/users/emily/default.nix b/config/common/users/emily/default.nix index a09a9cf..cf9b3c1 100644 --- a/config/common/users/emily/default.nix +++ b/config/common/users/emily/default.nix @@ -10,6 +10,9 @@ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIA/+iN407+HsfHbbC3tfdA8Yf4TZ08qXQMb4tb/SDAs+ emily@card" ]; }; + nixpkgs.config.permittedInsecurePackages = [ + "electron-25.9.0" + ]; home-manager.useGlobalPkgs = true; home-manager.users.emily = { @@ -22,11 +25,12 @@ thunderbird obsidian krita + pixman spotify cider pavucontrol signal-desktop - schildichat-desktop-wayland + element-desktop-wayland image-roll wl-clipboard @@ -35,13 +39,16 @@ grim imagemagick_light + #ubuntu_font_family jetbrains-mono + font-awesome ]; + fonts.fontconfig.enable = true; programs.bat.enable = true; programs.gpg.enable = true; programs.ripgrep.enable = true; - programs.yt-dl.enable = true; + programs.yt-dlp.enable = true; programs.eza = { enable = true; @@ -54,6 +61,15 @@ "--group-directories-first" ]; }; + programs.fish = { + enable = true; + interactiveShellInit = '' + set -U fish_greeting + ''; + loginShellInit = lib.mkIf config.kyouma.machine-type.graphical '' + [[ $TTY = '/dev/tty1' ]] && exec Hyprland + ''; + }; programs.git = { enable = true; signing.key = "B04F01A7A98A13020C39B4A68AB7B773A214ACE5"; diff --git a/config/hosts/ryuuko/configuration.nix b/config/hosts/ryuuko/configuration.nix index 3f34dad..b36f579 100644 --- a/config/hosts/ryuuko/configuration.nix +++ b/config/hosts/ryuuko/configuration.nix @@ -1,4 +1,4 @@ -{ config, ... }: { +{ config, lib, ... }: { imports = [ ../../common ../../profiles/graphical @@ -12,9 +12,11 @@ targetHost = "192.168.122.159"; targetUser = "emily"; }; + users.mutableUsers = lib.mkForce true; i18n.defaultLocale = "en_GB.UTF-8"; networking.hostName = "ryuuko"; networking.networkmanager.enable = true; + systemd.network.enable = lib.mkForce false; kyouma.machine-type.physical = true; kyouma.machine-type.portable = true; services.openssh.enable = true; diff --git a/config/hosts/ryuuko/hardware-configuration-t460.nix b/config/hosts/ryuuko/hardware-configuration-t460.nix new file mode 100644 index 0000000..7a08d09 --- /dev/null +++ b/config/hosts/ryuuko/hardware-configuration-t460.nix @@ -0,0 +1,46 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/cbf4d839-1afd-4ae8-9295-dd50ec25f713"; + fsType = "btrfs"; + options = [ "subvol=nixos" ]; + }; + + boot.initrd.luks.devices."uwu".device = "/dev/disk/by-uuid/5d4cd902-f6ce-48f7-b0ca-0aab29230304"; + + fileSystems."/home" = + { device = "/dev/disk/by-uuid/cbf4d839-1afd-4ae8-9295-dd50ec25f713"; + fsType = "btrfs"; + options = [ "subvol=home" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/270E-304D"; + fsType = "vfat"; + }; + + swapDevices = [ ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wwp0s20f0u3.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/config/profiles/graphical/default.nix b/config/profiles/graphical/default.nix index 9897d91..d36859f 100644 --- a/config/profiles/graphical/default.nix +++ b/config/profiles/graphical/default.nix @@ -8,6 +8,8 @@ kyouma.machine-type.graphical = true; deployment.allowLocalDeployment = true; + hardware.opengl.enable = true; + services.geoclue2.enable = true; services.pipewire = { @@ -22,11 +24,17 @@ GDK_BACKEND = "wayland,x11"; MOZ_ENABLE_WAYLAND = "1"; CLUTTER_BACKEND = "wayland"; + WLR_NO_HARDWARE_CURSORS = "1"; }; xdg.portal.wlr.enable = true; stylix= { - base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml"; + image = pkgs.fetchurl { + url = "https://kyouma.net/wallpaper.png"; + sha256 = "1f46b439a864cd28b8ea93563b4762f1efb2648bae0148fd6b45f3033b10b0e8"; + }; + polarity = "dark"; + #base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-macchiato.yaml"; fonts = { sansSerif = { package = pkgs.noto-fonts; @@ -44,17 +52,22 @@ name = "capitaine"; size = 24; }; + targets = { + console.enable = false; + fish.enable = false; + }; }; home-manager.users.emily = { - stylix.tagets = { + stylix.targets = { hyprland.enable = false; kitty.enable = false; mako.enable = false; rofi.enable = false; - swaylock.enabke = false; + swaylock.enable = false; waybar.enable = false; nixvim.enable = false; + fish.enable = false; }; home.keyboard = { layout = "de"; @@ -176,27 +189,27 @@ render_titles = false; }; }; + xwayland = { + force_zero_scaling = true; + use_nearest_neighbor = false; + }; misc = { disable_hyprland_logo = true; - vrr = 1; + vrr = 1; }; - xwayland = { - use_nearest_neighbor = false; - force_zero_scaling = true; - }; - device."syna8013:00-06cb:ce69-touchpad" = { + "device:syna8013:00-06cb:ce69-touchpad" = { sensitivity = 0.3; }; - device.":logitech-m705" = { + "device:logitech-m705" = { sensitivity = 0.1; accel_profile = "flat"; }; - device."tpps/2-ibm-trackpoint" = { + "device:tpps/2-ibm-trackpoint" = { sensitivity = 0.2; scroll_method = "on_button_down"; accel_profile = "flat"; }; - device."tpps/2-elan-trackpoint" = { + "device:tpps/2-elan-trackpoint" = { sensitivity = 0; scroll_method = "on_button_down"; accel_profile = "flat"; @@ -230,7 +243,7 @@ "animation slide up,Rofi" ]; - "$mod" = "SUPER"; + "$mod" = "ALT"; "$notifycmd" = "${notifysend} -h string:x-canonical-private-synchronous:hypr-cfg -u low"; bind = [ "$mod, Return, exec, ${kitty}" @@ -367,9 +380,6 @@ "$mod ALT, down, moveactive, 0 80" "$mod ALT, J, moveactive, 0 80" ]; - bindl = [ - ",switch:Lid Switch, exec, ${swaylock} -f -i ~/Pictures/wallpapers/lockscreen.png" - ]; bindm = [ "$mod, mouse:272, movewindow" "$mod, mouse:273, resizewindow" @@ -379,7 +389,6 @@ programs.imv.enable = true; - programs.wpaperd = { enable = true; settings.default = { @@ -390,7 +399,7 @@ }; programs.waybar = { enable = true; - style = ./waybar-style.css; + style = ./files/waybar-style.css; systemd = { enable = true; target = "hyprland-session.target"; @@ -399,7 +408,7 @@ hyprbar = { layer = "top"; position = "top"; - output = "eDP-1"; + #output = "eDP-1"; margin = "0 0 0 0"; modules-left = [ "hyprland/workspaces" "custom/playerctl" "tray" ]; modules-center = [ "clock" ]; @@ -411,6 +420,15 @@ active-only = false; on-click = "activate"; format-icons = { + "1" = "1"; + "2" = "2"; + "3" = "3"; + "4" = "4"; + "5" = "5"; + "6" = "6"; + "7" = "7"; + "8" = "8"; + "9" = "9"; "10" = "0"; urgent = ""; focused = ""; @@ -502,7 +520,7 @@ }; programs.kitty = { enable = true; - font.size = "11"; + font.size = 11; font.name = "JetBrains Mono"; settings = { enable_audio_bell = false; @@ -532,8 +550,8 @@ services.gammastep = { enable = true; provider = "geoclue2"; - temperature.day = "6500"; - temperature.night = "3700"; + temperature.day = 6500; + temperature.night = 3700; settings.general.adjustment-method = "wayland"; }; services.mako = { @@ -579,6 +597,19 @@ enable = true; enableSshSupport = true; }; + + services.swayidle = + let + swaylock = "${pkgs.swaylock}/bin/swaylock"; + in { + enable = true; + systemdTarget = "hyprland-session.target"; + events = [ + { event = "before-sleep"; command = "${swaylock} -f -i ~/Pictures/wallpapers/lockscreen.png"; } + { event = "lock"; command = "${swaylock} -f -i ~/Pictures/wallpapers/lockscreen.png"; } + ]; + }; + services.syncthing = { enable = true; tray.enable = true; diff --git a/config/profiles/graphical/files/rofi/confirm.rasi b/config/profiles/graphical/files/rofi/confirm.rasi index a4a66d0..76d7c36 100644 --- a/config/profiles/graphical/files/rofi/confirm.rasi +++ b/config/profiles/graphical/files/rofi/confirm.rasi @@ -1,7 +1,3 @@ -/** - * Copyright (C) 2020-2023 Aditya Shakya - **/ - /*****----- Configuration -----*****/ configuration { show-icons: false; diff --git a/config/profiles/graphical/files/rofi/shared/colors.rasi b/config/profiles/graphical/files/rofi/shared/colors.rasi index e94c7d9..a5b5c7a 100644 --- a/config/profiles/graphical/files/rofi/shared/colors.rasi +++ b/config/profiles/graphical/files/rofi/shared/colors.rasi @@ -1,7 +1,3 @@ -/* Copyright (C) 2020-2023 Aditya Shakya */ - -/* Colors */ - * { background: #24273a; background-alt: #1e2030; diff --git a/config/profiles/graphical/files/rofi/shared/fonts.rasi b/config/profiles/graphical/files/rofi/shared/fonts.rasi index 616e614..aca34da 100644 --- a/config/profiles/graphical/files/rofi/shared/fonts.rasi +++ b/config/profiles/graphical/files/rofi/shared/fonts.rasi @@ -1,9 +1,3 @@ -/* Copyright (C) 2020-2023 Aditya Shakya */ - -/* Text Font */ - -/* { font: "Iosevka Nerd Font 10"; } -*/ \ No newline at end of file diff --git a/config/profiles/graphical/waybar-style.css b/config/profiles/graphical/files/waybar-style.css similarity index 100% rename from config/profiles/graphical/waybar-style.css rename to config/profiles/graphical/files/waybar-style.css diff --git a/config/profiles/graphical/nixvim.nix b/config/profiles/graphical/nixvim.nix index 51e2cff..89e7889 100644 --- a/config/profiles/graphical/nixvim.nix +++ b/config/profiles/graphical/nixvim.nix @@ -1,19 +1,20 @@ {config, pkgs, inputs, ... }: { - imports = [ + home-manager.users.emily.imports = [ inputs.nixvim.homeManagerModules.nixvim ]; - programs.nixvim = { + home-manager.users.emily.programs.nixvim = { + enable = true; extraPlugins = [ pkgs.vimPlugins.molokai ]; - coloscheme = "molokai"; + colorscheme = "molokai"; vimAlias = true; - highlight.Normal = { + highlightOverride.Normal = { ctermbg = "NONE"; - guibg = "NONE"; + bg = "NONE"; }; options = { number = true; autoindent = true; - mouse = false; + mouse = ""; encoding = "utf-8"; shiftwidth = 2; smartindent = true;