diff --git a/flake.nix b/flake.nix index 246eec3..f42c2ef 100755 --- a/flake.nix +++ b/flake.nix @@ -68,6 +68,16 @@ url = "github:SylEleuth/gruvbox-plus-icon-pack"; flake = false; }; + + openmw-git = { + url = "gitlab:OpenMW/openmw"; + flake = false; + }; + + mygui-git = { + url = "github:mygui/MyGUI/dae9ac4be5a09e672bec509b1a8552b107c40214"; + flake = false; + }; }; outputs = { diff --git a/overlay.nix b/overlay.nix index daa749f..f437641 100755 --- a/overlay.nix +++ b/overlay.nix @@ -10,6 +10,22 @@ fonts = ["JetBrainsMono"]; }; + # mygui = prev.mygui.overrideAttrs (old: { + # version = "3.4.3"; + # src = inputs.mygui-git; + # patches = []; + # }); + # + # openmw = prev.openmw.overrideAttrs (old: { + # version = "9999"; + # src = inputs.openmw-git; + # + # buildInputs = old.buildInputs ++ [prev.libyamlcpp prev.luajit prev.collada-dom]; + # + # patches = []; + # dontWrapQtApps = false; + # }); + steam = prev.steam.override { extraPkgs = prev: [ prev.libkrb5 @@ -17,7 +33,10 @@ prev.gnome.zenity prev.xdg-user-dirs ]; - extraLibraries = prev: []; + extraLibraries = prev: [ + prev.gperftools + prev.mpg123 + ]; }; nvim-hmts = prev.vimUtils.buildVimPlugin { diff --git a/pkgs/test.patch b/pkgs/test.patch deleted file mode 100644 index 554be71..0000000 --- a/pkgs/test.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/CMake/Utils/MyGUIConfigTargets.cmake b/CMake/Utils/MyGUIConfigTargets.cmake -index 871ef84b9..6a594cfe4 100644 ---- a/CMake/Utils/MyGUIConfigTargets.cmake -+++ b/CMake/Utils/MyGUIConfigTargets.cmake -@@ -421,15 +421,6 @@ function(mygui_config_lib PROJECTNAME) - # add GCC visibility flags to shared library build - target_compile_options(${PROJECTNAME} PRIVATE ${MYGUI_GCC_VISIBILITY_OPTIONS}) - target_compile_definitions(${PROJECTNAME} PRIVATE ${MYGUI_GCC_VISIBILITY_DEFINITIONS}) -- if (APPLE) -- # deal with Mac OS X's framework system -- set_target_properties(${PROJECTNAME} PROPERTIES FRAMEWORK TRUE) -- set_target_properties(${PROJECTNAME} PROPERTIES PUBLIC_HEADER "${${PROJECTNAME}_HEADERS}") -- set_target_properties(${PROJECTNAME} PROPERTIES OUTPUT_NAME ${PROJECTNAME}) -- set_target_properties(${PROJECTNAME} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE) -- set_target_properties(${PROJECTNAME} PROPERTIES BUILD_WITH_INSTALL_NAME_DIR TRUE) -- set_target_properties(${PROJECTNAME} PROPERTIES INSTALL_NAME_DIR "@executable_path/../lib") -- endif (APPLE) - endif () - endif (MYGUI_STATIC) - mygui_install_target(${PROJECTNAME} "") diff --git a/system/configuration.nix b/system/configuration.nix index 13e4c6c..059e4b5 100755 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -21,7 +21,6 @@ kernelModules = ["i2c-dev" "i2c-piix4"]; kernelParams = [ "amdgpu.ppfeaturemask=0xffffffff" - "net.ifnames=0" "amd_pstate.shared_mem=1" "amd_pstate=active" # "video=DP-1:2560x1440@144" @@ -45,8 +44,8 @@ networking = { hostName = "terra"; # Define your hostname. - dhcpcd.enable = true; firewall.enable = false; + useNetworkd = true; extraHosts = '' 192.168.0.18 steam.deck 127.0.0.1 modules-cdn.eac-prod.on.epicgames.com @@ -130,17 +129,27 @@ ]; }; - systemd.extraConfig = '' - DefaultTimeoutStopSec=10s - ''; + systemd = { + extraConfig = '' + DefaultTimeoutStopSec=10s + ''; - systemd.user.extraConfig = '' - # needed for xdg-open to find the default browser. Why the fuck do I even need to do that? - DefaultEnvironment="PATH=/etc/profiles/per-user/manuel/bin:/run/current/system/sw/bin" + user.extraConfig = '' + # needed for xdg-open to find the default browser. Why the fuck do I even need to do that? + DefaultEnvironment="PATH=/etc/profiles/per-user/manuel/bin:/run/current/system/sw/bin" - #Systemd is a meme. This is the proof - DefaultTimeoutStopSec=10s - ''; + #Systemd is a meme. This is the proof + DefaultTimeoutStopSec=10s + ''; + + network = { + enable = true; + }; + + services = { + systemd-networkd-wait-online.enable = lib.mkForce false; + }; + }; nix = { extraOptions = '' diff --git a/system/hardware-configuration.nix b/system/hardware-configuration.nix index d4d6f61..3dea015 100644 --- a/system/hardware-configuration.nix +++ b/system/hardware-configuration.nix @@ -18,12 +18,12 @@ boot.extraModulePackages = []; fileSystems."/" = { - device = "/dev/disk/by-uuid/cc08e6a4-46ef-4207-a2d9-195e36e06179"; + device = "/dev/disk/by-uuid/d57d2104-d36b-4fc9-9acd-4dd3807fb290"; fsType = "xfs"; }; fileSystems."/boot" = { - device = "/dev/disk/by-uuid/BE4D-EFA9"; + device = "/dev/disk/by-uuid/D84B-2DD9"; fsType = "vfat"; }; diff --git a/system/hardware/default.nix b/system/hardware/default.nix index 94f6b2b..8cb5d14 100644 --- a/system/hardware/default.nix +++ b/system/hardware/default.nix @@ -4,7 +4,7 @@ extraPackages = [pkgs.libvdpau-va-gl]; driSupport32Bit = true; }; - # chaotic.mesa-git.enable = true; + chaotic.mesa-git.enable = true; hardware.steam-hardware.enable = true; diff --git a/system/services/default.nix b/system/services/default.nix index d024dc0..aa0f69d 100644 --- a/system/services/default.nix +++ b/system/services/default.nix @@ -3,6 +3,7 @@ ./avahi ./locate ./pipewire + ./podman ./printing ./udev ./xdg-portal @@ -11,7 +12,7 @@ services = { blueman.enable = true; flatpak.enable = true; - fwupd.enable = true; + # fwupd.enable = true; gnome.gnome-keyring.enable = true; gvfs.enable = true; openssh.enable = true; diff --git a/system/services/podman/default.nix b/system/services/podman/default.nix new file mode 100644 index 0000000..a48933f --- /dev/null +++ b/system/services/podman/default.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: +{ + virtualisation = { + podman = { + enable = true; + + # Create a `docker` alias for podman, to use it as a drop-in replacement + dockerCompat = true; + + # Required for containers under podman-compose to be able to talk to each other. + defaultNetwork.settings.dns_enabled = true; + }; + }; +} diff --git a/user/configs/fish/default.nix b/user/configs/fish/default.nix index 41fa9c0..a53504c 100755 --- a/user/configs/fish/default.nix +++ b/user/configs/fish/default.nix @@ -54,6 +54,7 @@ ''; }; shellAliases = { + nf = "${pkgs.neofetch}/bin/neofetch"; e = "nvim"; ls = "${pkgs.eza}/bin/eza --icons"; ll = "${pkgs.eza}/bin/eza --icons -l"; diff --git a/user/configs/kvantum/default.nix b/user/configs/kvantum/default.nix index d75a861..fce7bf4 100755 --- a/user/configs/kvantum/default.nix +++ b/user/configs/kvantum/default.nix @@ -16,7 +16,7 @@ platformTheme = "gtk"; }; - # xdg.configFile."Kvantum/kvantum.kvconfig".text = "theme=gruvbox-kvantum"; - # xdg.configFile."Kvantum/gruvbox-kvantum/gruvbox-kvantum.kvconfig".source = inputs.gruvbox-kvantum + "/gruvbox-kvantum/gruvbox-kvantum.kvconfig"; - # xdg.configFile."Kvantum/gruvbox-kvantum/gruvbox-kvantum.svg".source = inputs.gruvbox-kvantum + "/gruvbox-kvantum/gruvbox-kvantum.svg"; + xdg.configFile."Kvantum/kvantum.kvconfig".text = "theme=gruvbox-kvantum"; + xdg.configFile."Kvantum/gruvbox-kvantum/gruvbox-kvantum.kvconfig".source = inputs.gruvbox-kvantum + "/gruvbox-kvantum/gruvbox-kvantum.kvconfig"; + xdg.configFile."Kvantum/gruvbox-kvantum/gruvbox-kvantum.svg".source = inputs.gruvbox-kvantum + "/gruvbox-kvantum/gruvbox-kvantum.svg"; } diff --git a/user/configs/mpd/default.nix b/user/configs/mpd/default.nix index 144373d..8d00cb3 100755 --- a/user/configs/mpd/default.nix +++ b/user/configs/mpd/default.nix @@ -1,4 +1,8 @@ { + imports = [ + ../../modules/mpd-notification + ]; + services.mpd = { enable = true; musicDirectory = "/mnt/hdd/Music"; @@ -85,9 +89,18 @@ }; }; - services.mpdris2 = { + # services.mpdris2 = { + # enable = true; + # notifications = true; + # multimediaKeys = false; + # }; + + services.mpd-mpris = { + enable = true; + mpd.useLocal = true; + }; + + services.mpd-notification = { enable = true; - notifications = true; - multimediaKeys = false; }; } diff --git a/user/configs/neovim/config/lua/plugins/init.lua b/user/configs/neovim/config/lua/plugins/init.lua index 7f50ccb..9a18531 100755 --- a/user/configs/neovim/config/lua/plugins/init.lua +++ b/user/configs/neovim/config/lua/plugins/init.lua @@ -8,6 +8,8 @@ require("plugins.dressing") require("plugins.ibl") require("plugins.lspconfig") require("plugins.lualine") +require("plugins.notify") +require("plugins.noice") require("plugins.smartsplits") require("plugins.surround") require("plugins.telescope") diff --git a/user/configs/neovim/config/lua/plugins/noice.lua b/user/configs/neovim/config/lua/plugins/noice.lua new file mode 100644 index 0000000..54d4135 --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/noice.lua @@ -0,0 +1,18 @@ +require("noice").setup({ + lsp = { + -- override markdown rendering so that **cmp** and other plugins use **Treesitter** + override = { + ["vim.lsp.util.convert_input_to_markdown_lines"] = true, + ["vim.lsp.util.stylize_markdown"] = true, + ["cmp.entry.get_documentation"] = true, + }, + }, + -- you can enable a preset for easier configuration + presets = { + bottom_search = false, -- use a classic bottom cmdline for search + command_palette = false, -- position the cmdline and popupmenu together + long_message_to_split = false, -- long messages will be sent to a split + inc_rename = false, -- enables an input dialog for inc-rename.nvim + lsp_doc_border = false, -- add a border to hover docs and signature help + }, +}) diff --git a/user/configs/neovim/config/lua/plugins/notify.lua b/user/configs/neovim/config/lua/plugins/notify.lua new file mode 100644 index 0000000..5c5cb1c --- /dev/null +++ b/user/configs/neovim/config/lua/plugins/notify.lua @@ -0,0 +1,3 @@ +require("notify").setup({ + background_colour = "#282828" +}) diff --git a/user/configs/neovim/config/lua/settings.lua b/user/configs/neovim/config/lua/settings.lua index 59fdc7a..ca91a18 100755 --- a/user/configs/neovim/config/lua/settings.lua +++ b/user/configs/neovim/config/lua/settings.lua @@ -12,7 +12,6 @@ vim.o.clipboard = "unnamedplus" vim.o.termguicolors = true vim.o.ignorecase = true vim.o.smartcase = true -vim.o.lazyredraw = true vim.o.wrap = false vim.o.scrolloff = 8 diff --git a/user/configs/neovim/default.nix b/user/configs/neovim/default.nix index 694100f..3f514de 100755 --- a/user/configs/neovim/default.nix +++ b/user/configs/neovim/default.nix @@ -20,6 +20,8 @@ smart-splits-nvim vim-easy-align mini-nvim + nui-nvim + noice-nvim vim-fugitive diff --git a/user/configs/rofi/theme.rasi b/user/configs/rofi/theme.rasi index 0cbb73a..8d1591e 100755 --- a/user/configs/rofi/theme.rasi +++ b/user/configs/rofi/theme.rasi @@ -58,7 +58,7 @@ listview { border: 0px 0px 0px; padding: 6px 0px 0px; margin: 10px 0px 0px 20px; - columns: 2; + columns: 1; lines: 5; background-color: @bg-col; } diff --git a/user/configs/wayland/ags/ags-config/js/panel/widgets/volume.js b/user/configs/wayland/ags/ags-config/js/panel/widgets/volume.js index 591a52e..3b2f546 100644 --- a/user/configs/wayland/ags/ags-config/js/panel/widgets/volume.js +++ b/user/configs/wayland/ags/ags-config/js/panel/widgets/volume.js @@ -1,5 +1,6 @@ import { Box, Button, Icon, Label, Stack } from 'resource:///com/github/Aylur/ags/widget.js'; import Audio from 'resource:///com/github/Aylur/ags/service/audio.js'; +import { execAsync } from 'resource:///com/github/Aylur/ags/utils.js'; export default () => Button({ className: 'volume', diff --git a/user/configs/wayland/hyprland/settings.nix b/user/configs/wayland/hyprland/settings.nix index 1a95c92..d421672 100644 --- a/user/configs/wayland/hyprland/settings.nix +++ b/user/configs/wayland/hyprland/settings.nix @@ -99,10 +99,10 @@ in { exec = [ "${pkgs.xorg.xrandr}/bin/xrandr --output ${rightMonitor.display} --primary" "ags -q; ags" - "pkill swww; sleep 2 && ${pkgs.swww}/bin/swww init && ${pkgs.swww}/bin/swww img $(cat ~/.cache/swww/wallpaper.txt)" + "pkill swww-daemon && sleep 2 && ${pkgs.swww}/bin/swww-daemon && ${pkgs.swww}/bin/swww img ~/.cache/swww/wallpaper" #Set cursor - "${pkgs.hyprland}/bin/hyprctl setcursor ${config.gtk.cursorTheme.name} ${builtins.toString config.gtk.cursorTheme.size} &> /dev/null" + "${pkgs.hyprland}/bin/hyprctl setcursor '${config.gtk.cursorTheme.name}' ${builtins.toString config.gtk.cursorTheme.size} &> /dev/null" ]; env = [ diff --git a/user/modules/mpd-notification/default.nix b/user/modules/mpd-notification/default.nix new file mode 100644 index 0000000..32a1bc0 --- /dev/null +++ b/user/modules/mpd-notification/default.nix @@ -0,0 +1,29 @@ +{ config, lib, pkgs, ... }: + +let + cfg = config.services.mpd-notification; +in { + meta.maintainers = [ "Varris" ]; + + options.services.mpd-notification = { + package = lib.mkPackageOption pkgs "mpd-notification" { }; + enable = lib.mkEnableOption "the mpd-notification service"; + }; + + config = lib.mkIf cfg.enable { + systemd.user.services.mpd-notification = { + Unit = { + Description = "A notification daemon for MPD"; + Documentation = "https://github.com/eworm-de/mpd-notification"; + After = [ "mpd.service" "network.target" "network-online.target" ]; + Requires = [ "dbus.socket" ]; + }; + + Service = { + Type = "simple"; + Restart = "on-failure"; + ExecStart = "${cfg.package}/bin/mpd-notification"; + }; + }; + }; +}