diff --git a/README.md b/README.md index 67d9d2b..71d3b18 100644 --- a/README.md +++ b/README.md @@ -75,3 +75,6 @@ TODO - disable root user - https://copeberg.org/bloxx12/nichts - https://github.com/fufexan/dotfiles - https://github.com/spikespaz/dotfiles +- https://github.com/luisnquin/nixos-config +- https://gitlab.com/fisuri/dotfiles +- https://github.com/NobbZ/nixos-config diff --git a/flake.lock b/flake.lock index 2ab2342..7f21752 100644 --- a/flake.lock +++ b/flake.lock @@ -100,25 +100,6 @@ "type": "github" } }, - "better-control": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1747462495, - "narHash": "sha256-1tL0AwbfmjWri0kBGEdc/vtoeFivfZe/Q5O+QCMpu5M=", - "owner": "rishabh5321", - "repo": "better-control-flake", - "rev": "e3d54fad4ada7dab63e1862f21fc2419378e1cb0", - "type": "github" - }, - "original": { - "owner": "rishabh5321", - "repo": "better-control-flake", - "type": "github" - } - }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -168,24 +149,6 @@ } }, "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { "inputs": { "systems": [ "stylix", @@ -352,6 +315,27 @@ "type": "github" } }, + "home-manager_3": { + "inputs": { + "nixpkgs": [ + "zen-browser", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1747747328, + "narHash": "sha256-3Gc5CqAJqpvI4gIU1Oxbl5w440b+rY9HvDzs5C0ChBA=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "65d2282ff6cf560f54997013bd1e575fbd0a7ebf", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "hyprcursor": { "inputs": { "hyprlang": [ @@ -420,9 +404,9 @@ "hyprlang": "hyprlang", "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", "pre-commit-hooks": "pre-commit-hooks", - "systems": "systems_2", + "systems": "systems", "xdph": "xdph" }, "locked": { @@ -660,22 +644,6 @@ } }, "nixpkgs_2": { - "locked": { - "lastModified": 1747327360, - "narHash": "sha256-LSmTbiq/nqZR9B2t4MRnWG7cb0KVNU70dB7RT4+wYK4=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e06158e58f3adee28b139e9c2bcfcc41f8625b46", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { "locked": { "lastModified": 1747335874, "narHash": "sha256-IKKIXTSYJMmUtE+Kav5Rob8SgLPnfnq4Qu8LyT4gdqQ=", @@ -691,7 +659,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_3": { "locked": { "lastModified": 1743703532, "narHash": "sha256-s1KLDALEeqy+ttrvqV3jx9mBZEvmthQErTVOAzbjHZs=", @@ -732,13 +700,14 @@ }, "root": { "inputs": { - "better-control": "better-control", "home-manager": "home-manager", "hyprland": "hyprland", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_2", "nixpkgs-unstable": "nixpkgs-unstable", - "stylix": "stylix" + "stylix": "stylix", + "superfreq": "superfreq", + "zen-browser": "zen-browser" } }, "stylix": { @@ -749,12 +718,12 @@ "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat_2", - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils", "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager_2", - "nixpkgs": "nixpkgs_4", - "systems": "systems_3", + "nixpkgs": "nixpkgs_3", + "systems": "systems_2", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-tmux": "tinted-tmux" @@ -774,22 +743,27 @@ "type": "github" } }, - "systems": { + "superfreq": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "lastModified": 1747578749, + "narHash": "sha256-MR8NuCe3Xq2MNLPdKE3+4VVw2e+UlwwDTM3U3RMJRig=", + "owner": "NotAShelf", + "repo": "superfreq", + "rev": "6bdbc7e0ecd06866b940765942c6abe2fbad5ec7", "type": "github" }, "original": { - "owner": "nix-systems", - "repo": "default", + "owner": "NotAShelf", + "repo": "superfreq", "type": "github" } }, - "systems_2": { + "systems": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -804,7 +778,7 @@ "type": "github" } }, - "systems_3": { + "systems_2": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -909,6 +883,27 @@ "repo": "xdg-desktop-portal-hyprland", "type": "github" } + }, + "zen-browser": { + "inputs": { + "home-manager": "home-manager_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1747747949, + "narHash": "sha256-Ax1S/YaEovDKz9M71AweVpDxqJiTn/tHowbbUTb4gSo=", + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "rev": "5f7f77c79f1e7512ead0bed4e8b4bbcef8d80b38", + "type": "github" + }, + "original": { + "owner": "0xc000022070", + "repo": "zen-browser-flake", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index b03c777..d9ed5b0 100644 --- a/flake.nix +++ b/flake.nix @@ -12,8 +12,17 @@ # hyprland, plugins and related utils hyprland.url = "github:hyprwm/Hyprland"; stylix.url = "github:danth/stylix/release-24.11"; - # quicksettings widget - better-control.url = "github:rishabh5321/better-control-flake"; + # zen browser + zen-browser.url = "github:0xc000022070/zen-browser-flake"; + # IMPORTANT: we're using "libgbm" and is only available in unstable so ensure + # to have it up-to-date or simply don't specify the nixpkgs input + zen-browser.inputs.nixpkgs.follows = "nixpkgs"; + + # power management + superfreq = { + url = "github:NotAShelf/superfreq"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { @@ -36,6 +45,7 @@ modules = [ ./hosts/spectre-x360-2018 stylix.nixosModules.stylix + inputs.superfreq.nixosModules.default home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; diff --git a/hosts/spectre-x360-2018/default.nix b/hosts/spectre-x360-2018/default.nix index fde9f0f..dd1fc70 100644 --- a/hosts/spectre-x360-2018/default.nix +++ b/hosts/spectre-x360-2018/default.nix @@ -9,6 +9,7 @@ ../../modules/nixos/flatpak.nix ../../modules/nixos/fonts.nix ../../modules/nixos/hyprland.nix + ../../modules/nixos/ld.nix ../../modules/nixos/monitoring.nix ../../modules/nixos/networking.nix ../../modules/nixos/nh.nix diff --git a/modules/home-manager/browser.nix b/modules/home-manager/browser.nix index 488b6e7..2788486 100644 --- a/modules/home-manager/browser.nix +++ b/modules/home-manager/browser.nix @@ -1,4 +1,4 @@ -{pkgs, ...}: +{pkgs, inputs, ...}: { programs.firefox = { ## Enable the Firefox web browser @@ -72,9 +72,73 @@ # Automatically enable extensions "extensions.autoDisableScopes" = 0; - + }; - + }; }; + + home.packages = with pkgs; [ + inputs.zen-browser.packages."${system}".default + + # inputs.zen-browser.packages."${system}".default.override { + # policies = { + # DisableAppUpdate = true; + # DisableTelemetry = true; + + # OfferToSaveLogins = false; + # AutofillAddressEnabled = true; + # AutofillCreditCardEnabled = false; + # # BlockAboutConfig = true; + + # DefaultDownloadDirectory = "\${home}/Downloads"; + + # ExtensionSettings = with builtins; + # let extension = shortId: uuid: { + # name = uuid; + # value = { + # install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi"; + # installation_mode = "normal_installed"; + # }; + # }; + # in listToAttrs [ + # (extension "ublock-origin" "uBlock0@raymondhill.net") + # (extension "ghostery" "firefox@ghostery.com") + # (extension "keepassxc-browser" "keepassxc-browser@keepassxc.org") + # (extension "morphine" "{b252db54-e4f6-440f-914a-1f017a3a390d}") + # ]; + # }; + # } + + ]; + # programs.zen-browser = { + # enable = true; + + # policies = { + # DisableAppUpdate = true; + # DisableTelemetry = true; + + # OfferToSaveLogins = false; + # AutofillAddressEnabled = true; + # AutofillCreditCardEnabled = false; + # # BlockAboutConfig = true; + + # DefaultDownloadDirectory = "\${home}/Downloads"; + + # ExtensionSettings = with builtins; + # let extension = shortId: uuid: { + # name = uuid; + # value = { + # install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/${shortId}/latest.xpi"; + # installation_mode = "normal_installed"; + # }; + # }; + # in listToAttrs [ + # (extension "ublock-origin" "uBlock0@raymondhill.net") + # (extension "ghostery" "firefox@ghostery.com") + # (extension "keepassxc-browser" "keepassxc-browser@keepassxc.org") + # (extension "morphine" "{b252db54-e4f6-440f-914a-1f017a3a390d}") + # ]; + # }; + # }; } diff --git a/modules/home-manager/code.nix b/modules/home-manager/code.nix index b03339e..9326b8e 100644 --- a/modules/home-manager/code.nix +++ b/modules/home-manager/code.nix @@ -25,15 +25,28 @@ # typst myriad-dreamin.tinymist + ] ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [ + { + name = "jupyter-hub"; + publisher = "ms-toolsai"; + version = "2024.10.1002821224"; + sha256 = "sha256-3YF91Wgw5je040xPpLHPdxQIEAetpmDz6La7bw2JM+g="; + } ]; - # }; keybindings = [ + # comment/uncomment line { key = "ctrl+#"; command = "editor.action.commentLine"; when = "editorTextFocus"; } + # run code cell in jupyter + { + key = "ctrl+enter"; + command = "jupyter.runCell"; + when = "editorTextFocus && editorHasSelection && jupyter.notebookEditorFocused"; + } ]; userSettings = { diff --git a/modules/home-manager/flatpaks.nix b/modules/home-manager/flatpaks.nix index ad2ca0f..ac8d4ff 100644 --- a/modules/home-manager/flatpaks.nix +++ b/modules/home-manager/flatpaks.nix @@ -13,7 +13,6 @@ "com.spotify.Client" "io.podman_desktop.PodmanDesktop" "org.pipewire.Helvum" - "io.github.zen_browser.zen" "im.riot.Riot" ]; } diff --git a/modules/home-manager/hypr/better-control.nix b/modules/home-manager/hypr/better-control.nix deleted file mode 100644 index 3e4d5ae..0000000 --- a/modules/home-manager/hypr/better-control.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - inputs, - pkgs, - ... -}: -{ - environment.systemPackages = - with pkgs; [ - inputs.better-control.packages.${pkgs.system}.better-control - ]; -} diff --git a/modules/home-manager/hypr/hyprland-customization.nix b/modules/home-manager/hypr/hyprland-customization.nix index f3ed343..22b45b9 100644 --- a/modules/home-manager/hypr/hyprland-customization.nix +++ b/modules/home-manager/hypr/hyprland-customization.nix @@ -63,7 +63,7 @@ "$mod+Ctrl, left, movetoworkspace, -1" "$mod+Ctrl, right, movetoworkspace, +1" - # # Switch workspace + # Switch workspace "$mod+Alt, left, workspace, -1" "$mod+Alt, right, workspace, +1" @@ -76,7 +76,7 @@ # repeatable bindings binde = [ # Fn keys - ", XF86MonBrightnessDown, exec, brightnessctl set -5%" + ", XF86MonBrightnessDown, exec, brightnessctl set 5%-" ", XF86MonBrightnessUp, exec, brightnessctl set +5%" ", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+" ", XF86AudioLowerVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%-" @@ -122,6 +122,7 @@ # # Fixes cursor themes in gnome apps under hyprland # "gsettings set org.gnome.desktop.interface cursor-theme '${config.home.pointerCursor.name}'" # "gsettings set org.gnome.desktop.interface cursor-size ${toString home.pointerCursor.size}" + "${pkgs.owncloud-client}" ]; general = { @@ -153,6 +154,11 @@ }; }; + device = { + name = "syna329a:00-06cb:cd4f-touchpad"; + sensitivity = 0.5; + }; + gestures = { workspace_swipe = true; workspace_swipe_fingers = 4; @@ -185,9 +191,11 @@ }; monitor = [ - "eDP-1, 3840x2160, 0x0, 1.5" # the internal laptop monitor - # Samsung monitor at irchel (matching the description) - # "desc:Samsung Electric Company LS27D80xU HK7X800803, 3840x2160, auto-up, 1.5" + "eDP-1, 3840x2160, 0x0, 1.666667" # the internal laptop monitor + # Samsung monitors at irchel (matching the description) + # "desc:Samsung Electric Company LS27D80xU HK7X800803, 3840x2160, auto-up, 1.8" + "desc:Samsung Electric Company LS27D80xU HNAX600169, 2560x1440@59.95, auto-up, 1" + ", preferred, auto-up, auto" # automatically add any newly detected monitor ]; @@ -200,9 +208,9 @@ "NIXOS_OZONE_WL, 1" "ELECTRON_OZONE_PLATFORM_HINT, wayland" # set the scale factor for GDK apps - "GDK_SCALE, 1.5" + "GDK_SCALE, 1.7" # set the scale factor for QT apps - "QT_SCALE_FACTOR, 1.5" + "QT_SCALE_FACTOR, 1.7" # set the scale factor for GTK apps ]; }; diff --git a/modules/home-manager/hypr/hyprlock.nix b/modules/home-manager/hypr/hyprlock.nix index 0c955d8..c21cb34 100644 --- a/modules/home-manager/hypr/hyprlock.nix +++ b/modules/home-manager/hypr/hyprlock.nix @@ -3,6 +3,13 @@ programs.hyprlock = { enable = true; settings = { + + + # prevent the screen being shown for a split second + animations = { + animation = "fadeIn, 0, 0, linear"; + }; + general = { # immediately lock the screen grace = 0; diff --git a/modules/home-manager/hypr/waybar.nix b/modules/home-manager/hypr/waybar.nix index 2146f7d..bf903ba 100644 --- a/modules/home-manager/hypr/waybar.nix +++ b/modules/home-manager/hypr/waybar.nix @@ -58,6 +58,7 @@ "format" = "{}"; "rewrite" = { "(.*) — Mozilla Firefox" = "$1"; + "(.*) — Zen Browser" = "$1"; "(.*) - fish" = "> [$1]"; "(.*) - Visual Studio Code" = "$1"; }; @@ -193,7 +194,7 @@ * { font-family: "FiraCode Nerd Font"; font-weight: bold; - font-size: 22px; + font-size: 20px; } window#waybar { diff --git a/modules/home-manager/obsidian.nix b/modules/home-manager/obsidian.nix index 1979463..5ff3d26 100644 --- a/modules/home-manager/obsidian.nix +++ b/modules/home-manager/obsidian.nix @@ -1,7 +1,6 @@ -{pkgs, ...}: +{pkgs, ...}: { home.packages = [ pkgs.obsidian ]; - } diff --git a/modules/home-manager/ssh.nix b/modules/home-manager/ssh.nix new file mode 100644 index 0000000..ecf43bc --- /dev/null +++ b/modules/home-manager/ssh.nix @@ -0,0 +1,20 @@ +{ lib, config, ... }: +{ + programs.ssh.enable = true; + programs.ssh.matchBlocks = { + ela = lib.hm.dag.entryBefore ["eiger"] { + hostname = "ela.cscs.ch"; + user = "rmoll"; + identityFile = "${config.home.homeDirectory}/.ssh/cscs-key"; + identitiesOnly = true; + }; + + eiger = { + hostname = "eiger.cscs.ch"; + user = "rmoll"; + identityFile = "${config.home.homeDirectory}/.ssh/cscs-key"; + identitiesOnly = true; + proxyJump = "ela"; + }; + }; +} diff --git a/modules/home-manager/stylix.nix b/modules/home-manager/stylix.nix index 4a27a3c..5c81650 100644 --- a/modules/home-manager/stylix.nix +++ b/modules/home-manager/stylix.nix @@ -44,10 +44,10 @@ }; sizes = { - applications = 15; - desktop = 15; + applications = 12; + desktop = 12; popups = 12; - terminal = 15; + terminal = 12; }; }; diff --git a/modules/nixos/bluetooth.nix b/modules/nixos/bluetooth.nix index 9ee4728..186a8d3 100644 --- a/modules/nixos/bluetooth.nix +++ b/modules/nixos/bluetooth.nix @@ -10,10 +10,10 @@ ]; hardware.bluetooth = { enable = true; - powerOnBoot = false; + powerOnBoot = true; settings = { General = { - Name = "Hello"; + Name = "Nixtre"; ControllerMode = "dual"; FastConnectable = "true"; Experimental = "true"; diff --git a/modules/nixos/ld.nix b/modules/nixos/ld.nix new file mode 100644 index 0000000..f56e78f --- /dev/null +++ b/modules/nixos/ld.nix @@ -0,0 +1,4 @@ +{config, ...}: +{ + programs.nix-ld.enable = true; +} diff --git a/modules/nixos/nvidia.nix b/modules/nixos/nvidia.nix index d6acde7..3fdcee5 100644 --- a/modules/nixos/nvidia.nix +++ b/modules/nixos/nvidia.nix @@ -16,9 +16,9 @@ hardware.graphics.enable = lib.mkForce true; hardware.nvidia = lib.mkForce { modesetting.enable = true; - powerManagement.enable = true; - # features not available for the old graphics card + powerManagement.enable = false; powerManagement.finegrained = false; + # features not available for the old graphics card open = false; nvidiaSettings = false; diff --git a/modules/nixos/power.nix b/modules/nixos/power.nix index 5e5a357..5274303 100644 --- a/modules/nixos/power.nix +++ b/modules/nixos/power.nix @@ -21,6 +21,44 @@ }; }; + + + # services.superfreq = { + # enable = true; + # settings = { + # charger = { + # governor = "performance"; + # turbo = "auto"; + # epp = "performance"; + # epb = "balance_performance"; + # platform_profile = "performance"; + # }; + + # battery = { + # governor = "powersave"; + # turbo = "auto"; + # epp = "power"; + # epb = "balance_power"; + # platform_profile = "low-power"; + # min_freq_mhz = 800; + # max_freq_mhz = 2500; + + # }; + + # daemon = { + # poll_interval_sec = 10; + # adaptive_interval = true; + # min_poll_interval_sec = 1; + # max_poll_interval_sec = 30; + # throttle_on_battery = true; + # }; + # battery_charge_thresholds = [50 90]; + # }; + + + # # logind.lidSwitchExternalPower = "ignore"; # prevent lid switch from triggering a suspend + # }; + systemd.sleep.extraConfig = '' AllowSuspend=yes AllowHibernation=yes diff --git a/users/remy.nix b/users/remy.nix index f0d6b6e..67a6d42 100644 --- a/users/remy.nix +++ b/users/remy.nix @@ -14,6 +14,7 @@ with lib.hm.gvariant; ../modules/home-manager/kubectl.nix ../modules/home-manager/obsidian.nix ../modules/home-manager/owncloud-client.nix + ../modules/home-manager/ssh.nix ../modules/home-manager/stylix.nix ../modules/home-manager/thunderbird.nix ../modules/home-manager/wofi.nix