diff --git a/flake.nix b/flake.nix old mode 100644 new mode 100755 index d081340..e60b49d --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + hyprland = { + url = "github:hyprwm/Hyprland"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + # Fish Plugins bobthefish = { url = "github:oh-my-fish/theme-bobthefish"; @@ -62,13 +67,15 @@ url = "github:vinceliuice/grub2-themes"; inputs.nixpkgs.follows = "nixpkgs"; }; + + waybar = { + url = "github:alexays/waybar"; + flake = false; + }; }; outputs = { self, nixpkgs, home-manager, ... }@inputs: let - username = "manuel"; - hostname = "terra"; - system = "x86_64-linux"; pkgs = import nixpkgs { @@ -87,6 +94,11 @@ wlroots-git = prev.wlroots.overrideAttrs (old: { version = "git"; src = inputs.wlroots-git; + nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.cmake pkgs.hwdata ]; + postPatch = '' + substituteInPlace backend/drm/meson.build \ + --replace "/usr/share/hwdata/pnp.ids" "${pkgs.hwdata}/share/hwdata/pnp.ids" + ''; }); sway-unwrapped = (prev.sway-unwrapped.overrideAttrs (old: { @@ -94,13 +106,21 @@ buildInputs = old.buildInputs ++ [ prev.xorg.xcbutilwm prev.pcre2 ]; nativeBuildInputs = old.nativeBuildInputs ++ [ prev.cmake ]; src = inputs.sway-git; - })).override { wlroots = wlroots-git; }; + })).override { + wlroots = wlroots-git; + }; - waybar = prev.waybar.override { wlroots = wlroots-git; }; + waybar = (prev.waybar.overrideAttrs (old: { + version = "git"; + src = inputs.waybar; + })).override { + wlroots = wlroots-git; + }; - # xwayland = prev.xwayland.overrideAttrs (old: { - # version = "22.2"; - # src = inputs.xorg-git; + #xwayland = prev.xwayland.overrideAttrs (old: { + # version = "git"; + # + # src = inputs.xorg-git; # buildInputs = old.buildInputs ++ [ # prev.udev # prev.xorg.libpciaccess @@ -113,6 +133,11 @@ pkgs.gamescope pkgs.libkrb5 pkgs.keyutils + pkgs.mpg123 + ]; + + extraLibraries = pkgs: [ + pkgs.mpg123 ]; }; @@ -124,25 +149,22 @@ mesa-git = (prev.mesa.overrideAttrs (old: { version = "git"; src = inputs.mesa-git; - buildInputs = old.buildInputs ++ [ pkgs.glslang ]; + buildInputs = old.buildInputs ++ [ pkgs.glslang pkgs.vulkan-loader ]; patches = [ - ./pkgs/mesa-git/opencl.patch - ./pkgs/mesa-git/disk_cache-include-dri-driver-path-in-cache-key.patch + ./pkgs/patches/mesa-git/opencl.patch + ./pkgs/patches/mesa-git/disk_cache-include-dri-driver-path-in-cache-key.patch ]; mesonFlags = pkgs.lib.lists.remove "-Dxvmc-libs-path=${placeholder "drivers"}/lib" old.mesonFlags; # xvmc was removed upstream })).override { - galliumDrivers = [ "radeonsi" "swrast" ]; + galliumDrivers = [ "radeonsi" "swrast" "zink" ]; vulkanDrivers = [ "amd" ]; enableGalliumNine = false; # Replaced by DXVK }; - - fzf = prev.fzf.overrideAttrs (old: { version = "0.33.0"; }); }; - formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt; - nixosConfigurations.${hostname} = nixpkgs.lib.nixosSystem { + nixosConfigurations.terra = nixpkgs.lib.nixosSystem { inherit system; inherit pkgs; specialArgs = { inherit inputs; }; @@ -157,7 +179,7 @@ { home-manager = { useUserPackages = true; - users.${username} = import ./user/home.nix; + users.manuel = import ./user/home.nix; extraSpecialArgs = { inherit inputs pkgs; }; }; } diff --git a/pkgs/mesa-git/disk_cache-include-dri-driver-path-in-cache-key.patch b/pkgs/patches/mesa-git/disk_cache-include-dri-driver-path-in-cache-key.patch old mode 100644 new mode 100755 similarity index 100% rename from pkgs/mesa-git/disk_cache-include-dri-driver-path-in-cache-key.patch rename to pkgs/patches/mesa-git/disk_cache-include-dri-driver-path-in-cache-key.patch diff --git a/pkgs/mesa-git/opencl.patch b/pkgs/patches/mesa-git/opencl.patch old mode 100644 new mode 100755 similarity index 100% rename from pkgs/mesa-git/opencl.patch rename to pkgs/patches/mesa-git/opencl.patch diff --git a/system/configuration.nix b/system/configuration.nix old mode 100644 new mode 100755 index 8edc064..babd963 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -84,6 +84,8 @@ # Enable sound. sound.enable = true; + + security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; @@ -91,6 +93,8 @@ pulse.enable = true; }; + services.flatpak.enable = true; + services.locate = { enable = true; locate = pkgs.plocate; @@ -169,8 +173,10 @@ services.geoclue2 = { enable = true; - appConfig."gammastep".isAllowed = true; - appConfig."gammastep".isSystem = false; + appConfig."gammastep" = { + isAllowed = true; + isSystem = false; + }; }; services.gnome.gnome-keyring.enable = true; @@ -179,11 +185,17 @@ enable = true; wlr.enable = true; extraPortals = [ - #pkgs.xdg-desktop-portal-gtk + pkgs.xdg-desktop-portal-gtk ]; }; - services.openssh = { enable = true; }; + programs.ssh = { + startAgent = true; + }; + + services.openssh = { + enable = true; + }; services.printing = { enable = true; @@ -196,7 +208,7 @@ }; services.greetd = { - enable = true; + enable = false; settings = { default_session = { vt = 1; @@ -206,11 +218,22 @@ }; }; + services.transmission = { + enable = true; + user = "manuel"; + openFirewall = true; + }; + services.fwupd.enable = true; - nix.gc = { - persistent = true; - automatic = true; + nix = { + gc = { + persistent = true; + automatic = true; + dates = "weekly"; + options = "--delete-older-than 14d"; + }; + settings.auto-optimise-store = true; }; nix.extraOptions = '' diff --git a/system/hardware-configuration.nix b/system/hardware-configuration.nix old mode 100644 new mode 100755 diff --git a/user/configs/beets/beets.nix b/user/configs/beets/beets.nix old mode 100644 new mode 100755 diff --git a/user/configs/dircolors.nix b/user/configs/dircolors.nix old mode 100644 new mode 100755 diff --git a/user/configs/firefox/firefox.nix b/user/configs/firefox/firefox.nix old mode 100644 new mode 100755 index 391663b..d94e211 --- a/user/configs/firefox/firefox.nix +++ b/user/configs/firefox/firefox.nix @@ -1 +1,5 @@ -{ config, pkgs, ... }: { programs.firefox = { enable = true; }; } +{ config, pkgs, ... }: { + programs.firefox = { + enable = true; + }; +} diff --git a/user/configs/fish/fish.nix b/user/configs/fish/fish.nix old mode 100644 new mode 100755 index 107b953..1563beb --- a/user/configs/fish/fish.nix +++ b/user/configs/fish/fish.nix @@ -16,7 +16,12 @@ interactiveShellInit = '' ${pkgs.any-nix-shell}/bin/any-nix-shell fish --info-right | source - set theme_color_scheme gruvbox + + set -g theme_color_scheme gruvbox + set -g theme_nerd_fonts yes + set -g theme_display_git_default_branch yes + set -g theme_git_default_branches master main + ''; functions = { #fish_prompt = '' diff --git a/user/configs/hyprland/hyprland.nix b/user/configs/hyprland/hyprland.nix new file mode 100755 index 0000000..f9b44e8 --- /dev/null +++ b/user/configs/hyprland/hyprland.nix @@ -0,0 +1,9 @@ +{ pkgs, lib, inputs, ... }: +{ + imports = [ + inputs.hyprland.homeManagerModules.default + ]; + + wayland.windowManager.hyprland.enable = true; +} + diff --git a/user/configs/kakoune/kakoune.nix b/user/configs/kakoune/kakoune.nix old mode 100644 new mode 100755 diff --git a/user/configs/mpd/mpd.nix b/user/configs/mpd/mpd.nix old mode 100644 new mode 100755 diff --git a/user/configs/mpv/mpv.nix b/user/configs/mpv/mpv.nix old mode 100644 new mode 100755 diff --git a/user/configs/nnn/nnn.nix b/user/configs/nnn/nnn.nix old mode 100644 new mode 100755 diff --git a/user/configs/sway/sway.nix b/user/configs/sway/sway.nix old mode 100644 new mode 100755 index 75733c2..45eeb8c --- a/user/configs/sway/sway.nix +++ b/user/configs/sway/sway.nix @@ -45,10 +45,12 @@ let rofi-theme = inputs.rofi-theme + "/gruvbox-dark.rasi"; killprocess = pkgs.writeShellScriptBin "killprocess.sh" '' - ps -x -o pid=,comm= | column -t -o " " | rofi -dmenu -p "kill process" | awk '{print $1}' | uniq | xargs -r kill -9 + ps -x -o pid=,comm= | column -t -o " " | ${pkgs.rofi-wayland}/bin/rofi -dmenu -p "kill process" | awk '{print $1}' | uniq | xargs -r kill -9 ''; -in { +in +{ imports = [ ./waybar.nix ]; + wayland.windowManager.sway = { enable = true; config = { @@ -57,7 +59,8 @@ in { gaps = { inner = 20; }; keybindings = let modifier = config.wayland.windowManager.sway.config.modifier; - in lib.mkOptionDefault { + in + lib.mkOptionDefault { "XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 10 --get-volume > ${wobsock}"; "XF86AudioLowerVolume" = @@ -75,7 +78,7 @@ in { "${modifier}+Print" = "exec ${pkgs.sway-contrib.grimshot}/bin/grimshot -c --notify copy active"; - "${modifier}+d" = "exec ${pkgs.rofi-wayland}/bin/rofi -show drun"; + "${modifier}+d" = "exec ${pkgs.rofi-wayland}/bin/rofi -show drun -show-icons"; "${modifier}+Shift+p" = "exec ${passmenu}/bin/passmenu.sh"; "${modifier}+Shift+o" = "exec ${killprocess}/bin/killprocess.sh"; @@ -84,13 +87,22 @@ in { "Ctrl+Space" = "exec ${pkgs.mako}/bin/makoctl dismiss"; "Ctrl+grave" = "exec ${pkgs.mako}/bin/makoctl restore"; + + # resize gaps + "${modifier}+Shift+F10" = "exec swaymsg gaps inner all set 20"; + "${modifier}+Shift+F11" = "exec swaymsg gaps inner all plus 20"; + "${modifier}+Shift+F12" = "exec swaymsg gaps inner all minus 20"; + + }; input = { "type:keyboard" = { xkb_layout = "us"; xkb_variant = "altgr-intl"; }; + "type:pointer" = { accel_profile = "flat"; }; + "type:touchpad" = { events = "disabled"; # disable DualSense touchpad. Let Steam Input handle it diff --git a/user/configs/sway/waybar.nix b/user/configs/sway/waybar.nix old mode 100644 new mode 100755 index 554c0b7..85eb5d3 --- a/user/configs/sway/waybar.nix +++ b/user/configs/sway/waybar.nix @@ -18,7 +18,8 @@ let sleep 1 done ''; -in { +in +{ programs.waybar = { enable = true; settings = [{ @@ -44,7 +45,9 @@ in { icon-size = 16; }; - "clock" = { format = "{:%a %d. %B %H:%M}"; }; + "clock" = { + format = "{:%a %d. %B %H:%M}"; + }; "pulseaudio" = { scroll-step = 5; @@ -78,6 +81,12 @@ in { @define-color background #282828; @define-color box-bg #3C3836; + label:disabled, + button:disabled { + color: inherit; + background-image: none; + } + * { font-family: JetBrainsMono Nerd Font; font-size: 9pt; diff --git a/user/home.nix b/user/home.nix old mode 100644 new mode 100755 index ab57138..3d8e3a6 --- a/user/home.nix +++ b/user/home.nix @@ -17,8 +17,8 @@ home.homeDirectory = "/home/manuel"; home.packages = [ pkgs.appimage-run - pkgs.discord - pkgs.firefox + pkgs.blueman + pkgs.discord-canary pkgs.gamescope pkgs.lutris pkgs.nerdfonts @@ -26,7 +26,6 @@ pkgs.noto-fonts-cjk-serif pkgs.pass pkgs.pavucontrol - pkgs.polymc pkgs.protontricks pkgs.steam pkgs.steam-run @@ -34,26 +33,36 @@ pkgs.thunderbird pkgs.twemoji-color-font pkgs.wineWowPackages.stagingFull - #pkgs.xivlauncher + pkgs.xivlauncher pkgs.xarchiver + pkgs.sshfs + pkgs.gnome.gvfs + pkgs.signal-desktop ]; home.sessionVariables = { + BROWSER = "librewolf"; EDITOR = "kak"; GTK_USE_PORTAL = "1"; WINEDLLOVERRIDES = "winemenubuilder.exe=d"; + #WLR_RENDERER = "vulkan"; Causes hangs }; fonts.fontconfig.enable = true; + programs.keychain = { + enable = true; + enableFishIntegration = true; + }; + services.gpg-agent = { enable = true; }; services.udiskie.enable = true; - # services.kdeconnect = { - # enable = true; - # indicator = true; - # }; + services.kdeconnect = { + enable = true; + indicator = true; + }; services.gammastep = { enable = false; @@ -104,6 +113,11 @@ services.gnome-keyring.enable = true; + services.easyeffects = { + enable = true; + preset = "custom"; + }; + programs.aria2.enable = true; xdg.userDirs = {