diff --git a/dotfiles/hypr/hyprlock.conf b/dotfiles/hypr/hyprlock.conf index 54356d8..ee6dc90 100644 --- a/dotfiles/hypr/hyprlock.conf +++ b/dotfiles/hypr/hyprlock.conf @@ -41,7 +41,7 @@ input-field { font_color = rgb(255,255,255) placeholder_text = password hide_input = false - fade_on_empty = false + fade_on_empty = true position = 0, -200 halign = center diff --git a/flake.lock b/flake.lock index e99ba3c..d55acd1 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1714931954, - "narHash": "sha256-QXpLmgmisNK2Zgpnu9DiO9ScrKJuJ4zmiMTNpObVIuk=", + "lastModified": 1714981474, + "narHash": "sha256-b3/U21CJjCjJKmA9WqUbZGZgCvospO3ArOUTgJugkOY=", "owner": "nix-community", "repo": "home-manager", - "rev": "3dfe05aa9b5646995ace887931fa60269a039777", + "rev": "6ebe7be2e67be7b9b54d61ce5704f6fb466c536f", "type": "github" }, "original": { @@ -59,11 +59,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1714933694, - "narHash": "sha256-sua/1gAfZ2lz3kxFyH6Hg/xu1eTkXOORlhXa21PaLJc=", + "lastModified": 1715012366, + "narHash": "sha256-fMXjuPW1Mr/YfEqJ9JXRNkcpIj8sZg7qkj1o5ZodFdo=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "cddeec47a1fc0e70d8598fd10c29cd0e9489999f", + "rev": "fa69de8ab6cc17bb763a1586c55847c5d5a82a83", "type": "github" }, "original": { diff --git a/hosts/default/configuration.nix b/hosts/default/configuration.nix index b93ae4f..84d4310 100644 --- a/hosts/default/configuration.nix +++ b/hosts/default/configuration.nix @@ -20,9 +20,6 @@ networking.hostName = "scbnb"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. nix.settings.experimental-features = [ "nix-command" "flakes"]; - # Configure network proxy if necessary - # networking.proxy.default = "http://user:password@proxy:port/"; - # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Enable networking networking.networkmanager.enable = true; @@ -70,16 +67,10 @@ alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; - # If you want to use JACK applications, uncomment this jack.enable = true; - # use the example session manager (no others are packaged yet so this is enabled by default, - # no need to redefine it in your config for now) - #media-session.enable = true; }; - # Enable touchpad support (enabled default in most desktopManager). - # services.xserver.libinput.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.itsscb = { @@ -87,7 +78,6 @@ description = "itsscb"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ - #thunderbird ]; }; @@ -97,22 +87,19 @@ + programs = { + + steam = { + enable = true; + }; - programs.hyprland = { - enable = true; - # package = inputs.hyprland.packages."${pkgs.system}".hyprland; - # nvidiaPatches = true; - xwayland.enable = true; - }; + hyprland = { + enable = true; + xwayland.enable = true; + }; - programs.chromium = { + chromium = { enable=true; - # commandLineArgs = [ - # "--disable-default-apps" - # "--homepage https://start.duckduckgo.com" - # "--start-maximized" - - # ]; homepageLocation = "https://start.duckduckgo.com"; extraOpts = { syncDisabled = true; @@ -123,6 +110,8 @@ defaultSearchProviderEnabled= true; defaultSearchProviderSearchURL = "https://start.duckduckgo.com/?q={searchTerms}"; }; + }; + environment = { sessionVariables = { WLR_NO_HARDWARE_CURSORS = "1"; @@ -151,30 +140,12 @@ home-manager = { }; }; - # Install firefox. - # programs.firefox.enable = true; -# programs.google-chrome = { -# enable = true; -# defaultBrowser = true; -# }; - -# programs.helix = { -# enabled = true; -# defaultEditor = true; -# }; - # Allow unfree packages nixpkgs.config.allowUnfree = true; xdg.portal.enable = true; - # xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; - -# services.udev.packages = with pkgs; [ gnome.gnome-settings-daemon ]; - # List packages installed in system profile. To search, run: - # $ nix search wget environment.systemPackages = with pkgs; [ - # vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. - # wget + curl waybar (waybar.overrideAttrs (oldAttrs: { mesonFlags = oldAttrs.mesonFlags ++ ["-Dexperimental=true"]; @@ -193,7 +164,6 @@ home-manager = { pavucontrol blueman hyprlock - # gnomeExtensions.appindicator inkscape gimp @@ -205,71 +175,35 @@ home-manager = { gitFull rustup helix + # vim thunderbird vlc spotify ]; -programs.steam = { - enable = true; -}; - -services.xserver.excludePackages = (with pkgs; [ - nano - xterm -]) ++ ( with pkgs.gnome; [ - cheese - gnome-music - epiphany - geary - totem - tali - iagno - hitori - atomix -]); - -# services.xserver.desktopManager.gnome.extraGSettingsOverrides = '' -# [com.ubuntu.login-screen] -# background-color='#000000' -# background-size='cover' -# background-repeat='no-repeat' -# background-picture-uri='file:///etc/nixos/configs/black.png' -# ''; - -programs.nix-ld.enable = true; -programs.nix-ld.libraries = with pkgs; [ - # Add any missing dynamic libraries for unpackaged - # programs here, NOT in environment.systemPackages -]; + services.xserver.excludePackages = (with pkgs; [ + nano + xterm + ]) ++ ( with pkgs.gnome; [ + cheese + gnome-music + epiphany + geary + totem + tali + iagno + hitori + atomix + ]); - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - # programs.gnupg.agent = { - # enable = true; - # enableSSHSupport = true; - # }; + programs.nix-ld.enable = true; + programs.nix-ld.libraries = with pkgs; [ + # Add any missing dynamic libraries for unpackaged + # programs here, NOT in environment.systemPackages + ]; - # List services that you want to enable: - - # Enable the OpenSSH daemon. - # services.openssh.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - - # This value determines the NixOS release from which the default - # settings for stateful data, like file locations and database versions - # on your system were taken. It‘s perfectly fine and recommended to leave - # this value at the release version of the first install of this system. - # Before changing this value read the documentation for this option - # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "23.11"; # Did you read the comment? } diff --git a/hosts/default/home.nix b/hosts/default/home.nix index 272f7f6..81d321d 100644 --- a/hosts/default/home.nix +++ b/hosts/default/home.nix @@ -1,29 +1,86 @@ { config, pkgs, inputs, ... }: { - # Home Manager needs a bit of information about you and the paths it should - # manage. home.username = "itsscb"; home.homeDirectory = "/home/itsscb"; - # wayland.windowManager.hyprland = { - # enable = true; - # settings = { - # # "$mod" = "SUPER"; - # "exec-once" = "/etc/nixos/dotfiles/hypr/init.sh"; - # }; - # }; - - # This value determines the Home Manager release that your configuration is - # compatible with. This helps avoid breakage when a new Home Manager release - # introduces backwards incompatible changes. - # - # You should not change this value, even if you update Home Manager. If you do - # want to update the value, then make sure to first check the Home Manager - # release notes. home.stateVersion = "23.11"; # Please read the comment before changing. programs = { + helix = { + enable = true; + defaultEditor = true; + settings = { + theme = "onedark"; + editor = { + line-number = "relative"; + bufferline = "multiple"; + auto-completion = true; + auto-save = true; + auto-format = true; + cursorline = true; + gutters = [ + "diff" + "diagnostics" + "line-numbers" + "spacer" + ]; + text-width = 80; + cursor-shape = { + insert = "bar"; + normal = "block"; + select = "underline"; + }; + + statusline = { + left = [ + "mode" + "spinner" + "file-modification-indicator" + "read-only-indicator" + ]; + + center = ["file-name"]; + + right = [ + "diagnostics" + "register" + "selections" + "position" + "file-encoding" + "file-line-ending" + "file-type" + ]; + + separator = "|"; + }; + + lsp = { + enable = true; + auto-signature-help = true; + display-messages = true; + display-inlay-hints = true; + }; + + indent-guides = { + render = true; + character = "┊"; + skip-levels = 1; + }; + }; + keys.insert.j.k="normal_mode"; + keys.insert."C-c"="normal_mode"; + + keys.normal.g.a = "code_action"; + keys.normal.backspace = { + r=":run-shell-command cargo run"; + t=":run-shell-command cargo test"; + b=":run-shell-command cargo build"; + c=":run-shell-command cargo check"; + }; + }; + }; + bash = { enable = true; shellAliases = { @@ -36,13 +93,11 @@ enable = true; userName = "itsscb"; userEmail = "dev@itsscb.de"; - # extraConfig = { - # credential.helper = "${ - # pkgs.git.override { withLibsecret = true; } - # }/bin/git-credential-libsecret"; - # }; }; + vim = { + enable=true; + }; chromium = { enable=true; commandLineArgs = [ @@ -52,21 +107,15 @@ "--enable-features=WebContentsForceDark" "--force-dark-mode" ]; - # homepageLocation = "https://start.duckduckgo.com"; - # extraOpts = { - # syncDisabled = true; - # BrowserSignin = 0; - # PasswordManagerEnabled = false; - # SpellcheckEnabled = false; - # }; - # defaultSearchProviderEnabled= true; - # defaultSearchProviderSearchURL = "https://start.duckduckgo.com/?q={searchTerms}"; }; }; # dconf = { # enable = true; # settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; + # settings."org/gnome/desktop/screensaver" = { + # picture-uri = "file:///etc/nixos/dotfiles/hypr/rust.png"; + # picture-uri-dark = "file:///etc/nixos/dotfiles/hypr/rust.png"; # settings."org/gnome/desktop/peripherals/touchpad".tap-to-click = true; # settings."org/gnome/desktop/background".picture-uri-dark = "file:///run/current-system/sw/share/backgrounds/gnome/keys-d.jpg"; # settings."org/gnome/desktop/background".picture-uri = "file:///run/current-system/sw/share/backgrounds/gnome/keys-l.jpg"; @@ -84,30 +133,10 @@ # settings."org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1".name= "gt2"; # settings."org/gnome/settings-daemon/plugins/media-keys".custom-keybindings= ["/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/"]; - # }; # The home.packages option allows you to install Nix packages into your - # environment. + # }; home.packages = [ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello - - # # It is sometimes useful to fine-tune packages, for example, by applying - # # overrides. You can do that directly here, just don't forget the - # # parentheses. Maybe you want to install Nerd Fonts with a limited number of - # # fonts? - # (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) - - # # You can also create simple shell scripts directly inside your - # # configuration. For example, this adds a command 'my-hello' to your - # # environment: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') ]; wayland.windowManager.hyprland.enable = true; -# wayland.windowManager.hyprland.plugins = [ -# inputs.hyprlock.packages."${pkgs.system}".hyprlock -# ]; wayland.windowManager.hyprland.settings = { exec-once = [ @@ -181,25 +210,18 @@ wayland.windowManager.hyprland.settings = { windowrulev2 = "suppressevent maximize, class:.*"; input = { - # kb_layout = us; follow_mouse = 2; touchpad = { natural_scroll = "yes"; }; - # sensitivity = 0; }; master = { new_is_master = false; }; - # env = [ - # "XCURSOR_SIZE,24" - # "QT_QPA_PLATFORMTHEME,qt5ct" - # ]; - bindm = [ "$mod, mouse:272, movewindow" "$mod, mouse:273, resizewindow" @@ -244,40 +266,14 @@ wayland.windowManager.hyprland.settings = { ) 10) ); - }; # Home Manager is pretty good at managing dotfiles. The primary way to manage - # plain files is through 'home.file'. + }; + home.file = { - ".config/helix".source = ../../dotfiles/helix; - # # Building this configuration will create a copy of 'dotfiles/screenrc' in - # # the Nix store. Activating the configuration will then make '~/.screenrc' a - # # symlink to the Nix store copy. - # ".screenrc".source = dotfiles/screenrc; - - # # You can also set the file content immediately. - # ".gradle/gradle.properties".text = '' - # org.gradle.console=verbose - # org.gradle.daemon.idletimeout=3600000 - # ''; + ".config/hypr/hyprlock.conf".source = ../../dotfiles/hypr/hyprlock.conf; + ".config/waybar".source = ../../dotfiles/waybar; }; - # Home Manager can also manage your environment variables through - # 'home.sessionVariables'. These will be explicitly sourced when using a - # shell provided by Home Manager. If you don't want to manage your shell - # through Home Manager then you have to manually source 'hm-session-vars.sh' - # located at either - # - # ~/.nix-profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh - # - # or - # - # /etc/profiles/per-user/itsscb/etc/profile.d/hm-session-vars.sh - # home.sessionVariables = { - # EDITOR = "emacs"; }; # Let Home Manager install and manage itself.