diff --git a/flake.nix b/flake.nix index 2e1f960..246eec3 100755 --- a/flake.nix +++ b/flake.nix @@ -34,6 +34,11 @@ inputs.nixpkgs.follows = "nixpkgs"; }; + ags = { + url = "github:Aylur/ags"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + gruvbox-kvantum = { url = "github:thefallnn/Gruvbox-Kvantum"; flake = false; @@ -63,11 +68,6 @@ url = "github:SylEleuth/gruvbox-plus-icon-pack"; flake = false; }; - - ags = { - url = "github:Aylur/ags"; - inputs.nixpkgs.follows = "nixpkgs"; - }; }; outputs = { @@ -90,10 +90,6 @@ overlays = [ self.overlays.default - inputs.chaotic-nyx.overlays.default - inputs.hyprland-contrib.overlays.default - inputs.hyprpicker.overlays.default - inputs.nixd.overlays.default ]; }; in { @@ -113,12 +109,14 @@ home-manager = { useUserPackages = true; users.manuel = import ./user/home.nix; - extraSpecialArgs = {inherit inputs;}; + extraSpecialArgs = { + inherit inputs; + inherit system; + }; useGlobalPkgs = true; }; } inputs.chaotic-nyx.nixosModules.default - inputs.hyprland.nixosModules.default ]; }; }; diff --git a/overlay.nix b/overlay.nix index be139ef..daa749f 100755 --- a/overlay.nix +++ b/overlay.nix @@ -25,6 +25,5 @@ version = "1"; src = inputs.nvim-hmts; }; - }; } diff --git a/pkgs/gruvbox-plus-icon-pack/default.nix b/pkgs/gruvbox-plus-icon-pack/default.nix index 3dddb9a..4e1cdeb 100755 --- a/pkgs/gruvbox-plus-icon-pack/default.nix +++ b/pkgs/gruvbox-plus-icon-pack/default.nix @@ -3,7 +3,6 @@ fetchFromGitHub, inputs, gtk3, - fd, gnome-icon-theme, hicolor-icon-theme, }: @@ -13,22 +12,15 @@ stdenvNoCC.mkDerivation rec { src = inputs.gruvbox-plus-icon-pack; - nativeBuildInputs = [gtk3 fd]; + nativeBuildInputs = [gtk3]; propagatedBuildInputs = [gnome-icon-theme hicolor-icon-theme]; installPhase = '' cd Gruvbox-Plus-Dark - fd " " -X rm mkdir -p $out/share/icons/Gruvbox-Plus-Dark cp -r * $out/share/icons/Gruvbox-Plus-Dark ''; - postFixup = '' - for i in $out/share/icons/*; do - gtk-update-icon-cache $i - done - ''; - dontDropIconThemeCache = true; } diff --git a/pkgs/test.patch b/pkgs/test.patch new file mode 100644 index 0000000..554be71 --- /dev/null +++ b/pkgs/test.patch @@ -0,0 +1,20 @@ +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 fb0367d..13e4c6c 100755 --- a/system/configuration.nix +++ b/system/configuration.nix @@ -34,11 +34,10 @@ }; systemd-boot = { - enable = true; - configurationLimit = 5; - consoleMode = "max"; + enable = true; + configurationLimit = 10; + consoleMode = "max"; }; - }; }; diff --git a/system/hardware-configuration.nix b/system/hardware-configuration.nix index 66dc4f4..d4d6f61 100644 --- a/system/hardware-configuration.nix +++ b/system/hardware-configuration.nix @@ -13,7 +13,7 @@ ]; boot.initrd.availableKernelModules = ["nvme"]; - boot.initrd.kernelModules = [ "amdgpu" ]; + boot.initrd.kernelModules = ["amdgpu"]; boot.kernelModules = ["kvm-amd"]; boot.extraModulePackages = []; diff --git a/system/hardware/default.nix b/system/hardware/default.nix index 8cb5d14..94f6b2b 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 bc37060..d024dc0 100644 --- a/system/services/default.nix +++ b/system/services/default.nix @@ -1,4 +1,4 @@ - { +{ imports = [ ./avahi ./locate @@ -11,6 +11,7 @@ services = { blueman.enable = true; flatpak.enable = true; + fwupd.enable = true; gnome.gnome-keyring.enable = true; gvfs.enable = true; openssh.enable = true; diff --git a/system/services/xdg-portal/default.nix b/system/services/xdg-portal/default.nix index 798136d..926a17b 100644 --- a/system/services/xdg-portal/default.nix +++ b/system/services/xdg-portal/default.nix @@ -1,6 +1,7 @@ {pkgs, ...}: { xdg.portal = { enable = true; + config.common.default = "*"; xdgOpenUsePortal = true; wlr.enable = false; #conflict with XDPH if enabled extraPortals = [pkgs.xdg-desktop-portal-gtk]; diff --git a/user/configs/beets/default.nix b/user/configs/beets/default.nix index 70ea9de..ff8f69d 100755 --- a/user/configs/beets/default.nix +++ b/user/configs/beets/default.nix @@ -1,6 +1,6 @@ { programs.beets = { - enable = true; + enable = true; #until fixed settings = { plugins = "duplicates ftintitle fetchart embedart chroma edit replaygain badfiles fish"; diff --git a/user/configs/fish/default.nix b/user/configs/fish/default.nix index cd31315..41fa9c0 100755 --- a/user/configs/fish/default.nix +++ b/user/configs/fish/default.nix @@ -57,7 +57,6 @@ e = "nvim"; ls = "${pkgs.eza}/bin/eza --icons"; ll = "${pkgs.eza}/bin/eza --icons -l"; - nf = "${pkgs.fastfetch}/bin/fastfetch"; r = "${pkgs.ranger}/bin/ranger"; }; }; diff --git a/user/configs/kvantum/default.nix b/user/configs/kvantum/default.nix index fce7bf4..d75a861 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 84207af..144373d 100755 --- a/user/configs/mpd/default.nix +++ b/user/configs/mpd/default.nix @@ -53,6 +53,8 @@ enable = true; settings = { + lyrics_fetchers = "musixmatch, sing365, metrolyrics, justsomelyrics, jahlyrics, plyrics, tekstowo, zeneszoveg, internet"; + visualizer_data_source = "/tmp/mpd.fifo"; visualizer_output_name = "my_fifo"; visualizer_in_stereo = true; diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/clock.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/clock.scssc new file mode 100644 index 0000000..d417134 Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/clock.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/mpris.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/mpris.scssc new file mode 100644 index 0000000..ffd8185 Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/mpris.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/sysTray.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/sysTray.scssc new file mode 100644 index 0000000..b29d371 Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/sysTray.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/volume.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/volume.scssc new file mode 100644 index 0000000..14bb0a0 Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/volume.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/windowTitle.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/windowTitle.scssc new file mode 100644 index 0000000..bd18bd6 Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/windowTitle.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/workspaces.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/workspaces.scssc new file mode 100644 index 0000000..747ac1a Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/276f4d14bb513c1c4ba632ea44b6c2e9dde349c2/workspaces.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/503f62c5c6d624b8605b27a983ea9fa0abebbb04/notificationPopup.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/503f62c5c6d624b8605b27a983ea9fa0abebbb04/notificationPopup.scssc new file mode 100644 index 0000000..1fd1f0b Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/503f62c5c6d624b8605b27a983ea9fa0abebbb04/notificationPopup.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/7066c94b235402477038797511879657f5f15bb3/notify-test.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/7066c94b235402477038797511879657f5f15bb3/notify-test.scssc new file mode 100644 index 0000000..edd25e8 Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/7066c94b235402477038797511879657f5f15bb3/notify-test.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/7066c94b235402477038797511879657f5f15bb3/style.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/7066c94b235402477038797511879657f5f15bb3/style.scssc new file mode 100644 index 0000000..70e5964 Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/7066c94b235402477038797511879657f5f15bb3/style.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/7374c266d40f30c3143150a6135aabe76e1eef96/gruvbox.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/7374c266d40f30c3143150a6135aabe76e1eef96/gruvbox.scssc new file mode 100644 index 0000000..efc1cab Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/7374c266d40f30c3143150a6135aabe76e1eef96/gruvbox.scssc differ diff --git a/user/configs/wayland/ags/ags-config/.sass-cache/e1a883864ee50a2ec0950f8f950a16a1146b42eb/panel.scssc b/user/configs/wayland/ags/ags-config/.sass-cache/e1a883864ee50a2ec0950f8f950a16a1146b42eb/panel.scssc new file mode 100644 index 0000000..2bac143 Binary files /dev/null and b/user/configs/wayland/ags/ags-config/.sass-cache/e1a883864ee50a2ec0950f8f950a16a1146b42eb/panel.scssc differ diff --git a/user/configs/wayland/ags/ags-config/config.js b/user/configs/wayland/ags/ags-config/config.js index e846348..ac87b49 100644 --- a/user/configs/wayland/ags/ags-config/config.js +++ b/user/configs/wayland/ags/ags-config/config.js @@ -13,12 +13,12 @@ from './js/utils.js'; Notifications.clear(); -const scss = App.configDir + '/style.scss'; -const css = '/tmp/style-ags.css'; -exec(`sassc ${scss} ${css}`); +const styleScss = App.configDir + '/style.scss'; +const styleCss = '/tmp/style-ags.css'; +exec(`sassc ${styleScss} ${styleCss}`); export default { - style: css, + style: styleCss, windows: [ forMonitors(Panel), NotificationsPopupWindow(), diff --git a/user/configs/wayland/ags/ags-config/js/notifications/notification.js b/user/configs/wayland/ags/ags-config/js/notifications/notification.js index 54712cf..13ee49f 100644 --- a/user/configs/wayland/ags/ags-config/js/notifications/notification.js +++ b/user/configs/wayland/ags/ags-config/js/notifications/notification.js @@ -4,10 +4,10 @@ import { lookUpIcon, timeout } from 'resource:///com/github/Aylur/ags/utils.js'; const NotificationIcon = ({ appEntry, appIcon, image }) => { if (image) { return Widget.Box({ - valign: 'start', + vpack: 'start', hexpand: false, className: 'icon img', - style: ` + css: ` background-image: url("${image}"); background-size: contain; background-repeat: no-repeat; @@ -27,17 +27,17 @@ const NotificationIcon = ({ appEntry, appIcon, image }) => { icon = appEntry; return Widget.Box({ - valign: 'start', + vpack: 'start', hexpand: false, className: 'icon', - style: ` + css: ` min-width: 78px; min-height: 78px; `, children: [Widget.Icon({ icon, size: 58, - halign: 'center', hexpand: true, - valign: 'center', vexpand: true, + hpack: 'center', hexpand: true, + vpack: 'center', vexpand: true, })], }); }; @@ -88,7 +88,7 @@ export const Notification = n => Widget.EventBox({ }), Widget.Button({ className: 'close-button', - valign: 'start', + vpack: 'start', child: Widget.Icon('window-close-symbolic'), onClicked: n.close.bind(n), }), diff --git a/user/configs/wayland/ags/ags-config/js/notifications/notificationPopup.js b/user/configs/wayland/ags/ags-config/js/notifications/notificationPopup.js index 7b2d029..0258bc2 100644 --- a/user/configs/wayland/ags/ags-config/js/notifications/notificationPopup.js +++ b/user/configs/wayland/ags/ags-config/js/notifications/notificationPopup.js @@ -5,7 +5,7 @@ import { Notification } from './notification.js'; const PopupList = () => Box({ className: 'notificationPopupList', - style: 'padding: 1px;', // so it shows up + css: 'padding: 1px;', // so it shows up vertical: true, binds: [['children', Notifications, 'popups', popups => popups.map(Notification)]], diff --git a/user/configs/wayland/ags/ags-config/js/notifications/widgets.js b/user/configs/wayland/ags/ags-config/js/notifications/widgets.js index dfc2281..7d1fbf2 100644 --- a/user/configs/wayland/ags/ags-config/js/notifications/widgets.js +++ b/user/configs/wayland/ags/ags-config/js/notifications/widgets.js @@ -18,7 +18,7 @@ const Placeholder = () => Widget.Box({ className: 'placeholder', vertical: true, vexpand: true, - valign: 'center', + vpack: 'center', children: [ Widget.Icon('notifications-disabled-symbolic'), Widget.Label('Your inbox is empty'), diff --git a/user/configs/wayland/ags/ags-config/js/panel/panel.js b/user/configs/wayland/ags/ags-config/js/panel/panel.js index f8c4832..f544169 100644 --- a/user/configs/wayland/ags/ags-config/js/panel/panel.js +++ b/user/configs/wayland/ags/ags-config/js/panel/panel.js @@ -24,7 +24,7 @@ const Center = () => Box({ }); const Right = () => Box({ - halign: 'end', + hpack: 'end', children: [ SysTray(), Clock(), @@ -33,7 +33,7 @@ const Right = () => Box({ export default monitor => Window({ name: `bar-${monitor}`, - exclusive: true, + exclusivity: "exclusive", className: 'bar', monitor, anchor: ['top', 'left', 'right'], 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 c93f43a..591a52e 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 @@ -11,7 +11,6 @@ export default () => Button({ Stack({ items: [ // tuples of [string, Widget] - ['101', Icon('audio-volume-overamplified-symbolic')], ['67', Icon('audio-volume-high-symbolic')], ['34', Icon('audio-volume-medium-symbolic')], ['1', Icon('audio-volume-low-symbolic')], diff --git a/user/configs/wayland/hyprland/default.nix b/user/configs/wayland/hyprland/default.nix index 830ef95..c93067e 100755 --- a/user/configs/wayland/hyprland/default.nix +++ b/user/configs/wayland/hyprland/default.nix @@ -2,222 +2,19 @@ config, pkgs, inputs, + system, ... -}: let - leftMonitor = { - display = "DP-2"; - res = "preferred"; - pos = "0x0"; - }; - - rightMonitor = { - display = "DP-1"; - res = "preferred"; - pos = "2560x0"; - }; - - modKey = "SUPER"; - - wobsock = "/tmp/wob-vol.fifo"; - - wob-voldaemon = pkgs.writeShellScriptBin "wob-volumeindicator.sh" '' - if pgrep "wob"; then - killall wob &> /dev/null - fi - - if [[ -e "${wobsock}" ]]; then - rm "${wobsock}" - fi - - mkfifo "${wobsock}" - tail -f "${wobsock}" | ${pkgs.wob}/bin/wob & - echo "wob: started" - ''; - - killprocess = pkgs.writeShellScriptBin "killprocess.sh" '' - 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 - ''; - - passmenu = pkgs.writeShellScriptBin "passmenu.sh" '' - shopt -s nullglob globstar - - prefix=''${PASSWORD_STORE_DIR-~/.password-store} - password_files=( "$prefix"/**/*.gpg ) - password_files=( "''${password_files[@]#"$prefix"/}" ) - password_files=( "''${password_files[@]%.gpg}" ) - - password=$(printf '%s\n' "''${password_files[@]}" | ${pkgs.rofi-wayland}/bin/rofi -dmenu -p "pass: " "$@") - - [[ -n $password ]] || exit - - pass show -c "$password" 2>/dev/null - ''; -in { +}: { imports = [ - inputs.hyprland.homeManagerModules.default + ./settings.nix ../ags ../foot ../wob - ../mako ]; wayland.windowManager.hyprland = { enable = true; - extraConfig = '' - monitor=${leftMonitor.display}, ${leftMonitor.res}, ${leftMonitor.pos}, 1 - monitor=${rightMonitor.display}, ${rightMonitor.res}, ${rightMonitor.pos}, 1 - - workspace = 1, monitor:${rightMonitor.display}, persistent:true - workspace = 2, monitor:${rightMonitor.display}, persistent:true - workspace = 3, monitor:${rightMonitor.display}, persistent:true - - workspace = 4, monitor:${leftMonitor.display}, persistent:true - workspace = 5, monitor:${leftMonitor.display}, persistent:true - workspace = 6, monitor:${leftMonitor.display}, persistent:true - - input { - kb_layout = us - kb_variant = altgr-intl - - #mouse - accel_profile = flat - follow_mouse = 1 - } - - general { - gaps_in = 10 - border_size = 4 - col.active_border = rgba(665C54ff) - col.inactive_border = rgba(282828ff) - } - - dwindle { - pseudotile = yes - preserve_split = yes - } - - master { - new_is_master = true - } - - misc { - force_default_wallpaper = 0 - vfr = true - vrr = 2 - # enable_swallow = true - # swallow_regex = ^(foot)$ - } - - decoration { - rounding = 10 - - blur { - enabled = yes - size = 3 - passes = 2 - new_optimizations = on - } - - drop_shadow = yes - shadow_range = 30 - shadow_render_power = 3 - col.shadow = rgba(1a1a1aee) - } - - animations { - enabled = yes - - animation = windowsIn, 1, 8, default, slide - animation = windowsOut, 1, 8, default, slide - animation = border, 1, 8, default - animation = fade, 1, 5, default - animation = workspaces, 1, 4, default - } - - exec-once = ${pkgs.openrgb}/bin/openrgb --startminimized --profile autorun.orp - exec-once = ${pkgs.blueman}/bin/blueman-applet - # exec-once = ${pkgs.networkmanagerapplet}/bin/nm-applet --indicator - exec-once = ${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1 - # exec-once = ${pkgs.mullvad-vpn}/bin/mullvad-gui - exec-once = ${pkgs.ydotool}/bin/ydotoold - - exec = ${pkgs.xorg.xrandr}/bin/xrandr --output ${rightMonitor.display} --primary - exec = ${wob-voldaemon}/bin/wob-volumeindicator.sh - exec = ags -q; ags - exec = pkill swww; sleep 2 && ${pkgs.swww}/bin/swww init && ${pkgs.swww}/bin/swww img $(cat ~/.cache/swww/wallpaper.txt) - - #Set cursor - exec = ${pkgs.hyprland}/bin/hyprctl setcursor "${config.gtk.cursorTheme.name}" ${builtins.toString config.gtk.cursorTheme.size} &> /dev/null - - # Fix clipboard with Wine - exec-once = ${pkgs.wl-clipboard}/bin/wl-paste -t text -w sh -c '[ "$(${pkgs.xclip}/bin/xclip -selection clipboard -o)" = "$(${pkgs.wl-clipboard}/bin/wl-paste -n)" ] || ${pkgs.xclip}/bin/xclip -selection clipboard' - - env = XCURSOR_SIZE,${builtins.toString config.gtk.cursorTheme.size} - - #keybinds - bind = ${modKey}, 1, workspace, 1 - bind = ${modKey}, 2, workspace, 2 - bind = ${modKey}, 3, workspace, 3 - bind = ${modKey}, 4, workspace, 4 - bind = ${modKey}, 5, workspace, 5 - bind = ${modKey}, 6, workspace, 6 - - bind = ${modKey} SHIFT, 1, movetoworkspace, 1 - bind = ${modKey} SHIFT, 2, movetoworkspace, 2 - bind = ${modKey} SHIFT, 3, movetoworkspace, 3 - bind = ${modKey} SHIFT, 4, movetoworkspace, 4 - bind = ${modKey} SHIFT, 5, movetoworkspace, 5 - bind = ${modKey} SHIFT, 6, movetoworkspace, 6 - - - bindm = ${modKey}, mouse:272, movewindow - bindm = ${modKey}, mouse:273, resizewindow - - bind = ${modKey}, P, pseudo, # dwindle - bind = ${modKey}, J, togglesplit, # dwindle - bind = ${modKey} SHIFT, Space, togglefloating - bind = ${modKey}, F, fullscreen - - bind = ${modKey} SHIFT, Q, killactive - bind = ${modKey}, D, exec, ${pkgs.rofi-wayland}/bin/rofi -show drun -p Applications -show-icons - - bind = ${modKey}, Q, exec, ${pkgs.firefox}/bin/firefox - - bind = ${modKey}, Return, exec, ${pkgs.foot}/bin/foot - - bind = , XF86AudioRaiseVolume, exec, ${pkgs.pamixer}/bin/pamixer -i 10 --get-volume > ${wobsock} - bind = , XF86AudioLowerVolume, exec, ${pkgs.pamixer}/bin/pamixer -d 10 --get-volume > ${wobsock} - - bind = CTRL, grave, exec, ags toggle-window notification-center - bind = ${modKey} SHIFT, O, exec, ${killprocess}/bin/killprocess.sh - bind = ${modKey} SHIFT, P, exec, ${passmenu}/bin/passmenu.sh - - bind = MOD5, F9, exec, ${pkgs.mpc-cli}/bin/mpc stop - bind = MOD5, F10, exec, ${pkgs.mpc-cli}/bin/mpc prev - bind = MOD5, F11, exec, ${pkgs.mpc-cli}/bin/mpc toggle - bind = MOD5, F12, exec, ${pkgs.mpc-cli}/bin/mpc next - - bind = , Print, exec, ${pkgs.grimblast}/bin/grimblast -c --notify copy screen - bind = ${modKey}, Print, exec, ${pkgs.grimblast}/bin/grimblast -c --notify copy active - bind = ${modKey} SHIFT, Print, exec, ${pkgs.grimblast}/bin/grimblast -c --notify copy area - bind = ${modKey}, R, exec, ${pkgs.dolphin}/bin/dolphin - - bind = ${modKey} SHIFT, C, exec, hyprctl reload - - layerrule = blur, notifications - layerrule = ignorezero, notifications - - layerrule = blur, gtk-layer-shell - layerrule = blur, bar-0 - layerrule = blur, bar-1 - - layerrule = blur, notificationPopupWindow - layerrule = ignorezero, notificationPopupWindow - - - windowrulev2 = fullscreen, class:^(hl2_linux)$ - windowrulev2 = float, class:^(org.kde.dolphin)$ - ''; + package = inputs.hyprland.packages.${system}.hyprland; }; home.file.".local/share/kservices5/swww.desktop".text = '' @@ -230,8 +27,8 @@ in { [Desktop Action setSWWWWallpaper] Name=Set Image as Wallpaper - Exec=swww img "%f" && echo "%f" > ~/.cache/swww/wallpaper.txt + Exec=swww img "%f" && ln -sf "%f" ~/.cache/swww/wallpaper ''; - home.packages = [pkgs.wl-clipboard pkgs.wl-clipboard-x11 pkgs.hyprpicker pkgs.swww pkgs.hyprprop]; + home.packages = [pkgs.wl-clipboard pkgs.wl-clipboard-x11 pkgs.swww inputs.hyprland-contrib.packages.${system}.hyprprop]; } diff --git a/user/configs/wayland/hyprland/settings.nix b/user/configs/wayland/hyprland/settings.nix new file mode 100644 index 0000000..1a95c92 --- /dev/null +++ b/user/configs/wayland/hyprland/settings.nix @@ -0,0 +1,177 @@ +{ + config, + pkgs, + ... +}: let + leftMonitor = { + display = "DP-2"; + res = "preferred"; + pos = "0x0"; + }; + + rightMonitor = { + display = "DP-1"; + res = "preferred"; + pos = "2560x0"; + }; + + modKey = "SUPER"; +in { + wayland.windowManager.hyprland = { + settings = { + monitor = [ + "${leftMonitor.display}, ${leftMonitor.res}, ${leftMonitor.pos}, 1" + "${rightMonitor.display}, ${rightMonitor.res}, ${rightMonitor.pos}, 1" + ]; + + workspace = [ + "1, monitor:${rightMonitor.display}, persistent:true" + "2, monitor:${rightMonitor.display}, persistent:true" + "3, monitor:${rightMonitor.display}, persistent:true" + + "4, monitor:${leftMonitor.display}, persistent:true" + "5, monitor:${leftMonitor.display}, persistent:true" + "6, monitor:${leftMonitor.display}, persistent:true" + ]; + + input = { + kb_layout = "us"; + kb_variant = "altgr-intl"; + accel_profile = "flat"; + follow_mouse = 1; + }; + + general = { + gaps_in = 10; + border_size = 4; + "col.active_border" = "rgba(665C54ff)"; + "col.inactive_border" = "rgba(282828ff)"; + }; + + dwindle = { + pseudotile = true; + preserve_split = true; + }; + + master = { + new_is_master = true; + }; + + misc = { + force_default_wallpaper = 0; + vfr = true; + vrr = 2; + }; + + decoration = { + rounding = 10; + + blur = { + enabled = true; + size = 3; + passes = 2; + new_optimizations = true; + }; + drop_shadow = true; + shadow_range = 30; + shadow_render_power = 3; + "col.shadow" = "rgba(1a1a1aee)"; + }; + + animations = { + enabled = true; + animation = [ + "windowsIn, 1, 8, default, slide" + "windowsOut, 1, 8, default, slide" + "border, 1, 8, default" + "fade, 1, 5, default" + "workspaces, 1, 4, default" + ]; + }; + + exec-once = [ + "${pkgs.openrgb}/bin/openrgb --startminimized --profile autorun.orp" + "${pkgs.blueman}/bin/blueman-applet" + "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1" + "${pkgs.ydotool}/bin/ydotoold" + ]; + + 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)" + + #Set cursor + "${pkgs.hyprland}/bin/hyprctl setcursor ${config.gtk.cursorTheme.name} ${builtins.toString config.gtk.cursorTheme.size} &> /dev/null" + ]; + + env = [ + "XCURSOR_SIZE,${builtins.toString config.gtk.cursorTheme.size}" + ]; + + bind = [ + "${modKey}, 1, workspace, 1" + "${modKey}, 2, workspace, 2" + "${modKey}, 3, workspace, 3" + "${modKey}, 4, workspace, 4" + "${modKey}, 5, workspace, 5" + "${modKey}, 6, workspace, 6" + + "${modKey} SHIFT, 1, movetoworkspace, 1" + "${modKey} SHIFT, 2, movetoworkspace, 2" + "${modKey} SHIFT, 3, movetoworkspace, 3" + "${modKey} SHIFT, 4, movetoworkspace, 4" + "${modKey} SHIFT, 5, movetoworkspace, 5" + "${modKey} SHIFT, 6, movetoworkspace, 6" + + "${modKey}, P, pseudo, # dwindle" + "${modKey}, J, togglesplit, # dwindle" + "${modKey} SHIFT, Space, togglefloating" + "${modKey}, F, fullscreen" + + "${modKey} SHIFT, Q, killactive" + "${modKey}, D, exec, ${pkgs.rofi-wayland}/bin/rofi -show drun -p Applications -show-icons" + "${modKey} SHIFT, P, exec, ${pkgs.rofi-pass-wayland}/bin/rofi-pass" + + "${modKey}, Q, exec, ${pkgs.firefox}/bin/firefox" + + "${modKey}, Return, exec, ${pkgs.foot}/bin/foot" + + ", XF86AudioRaiseVolume, exec, ${pkgs.pamixer}/bin/pamixer -i 10 --get-volume" + ", XF86AudioLowerVolume, exec, ${pkgs.pamixer}/bin/pamixer -d 10 --get-volume" + + "CTRL, grave, exec, ags toggle-window notification-center" + + "MOD5, F9, exec, ${pkgs.mpc-cli}/bin/mpc stop" + "MOD5, F10, exec, ${pkgs.mpc-cli}/bin/mpc prev" + "MOD5, F11, exec, ${pkgs.mpc-cli}/bin/mpc toggle" + "MOD5, F12, exec, ${pkgs.mpc-cli}/bin/mpc next" + ", Print, exec, ${pkgs.grimblast}/bin/grimblast -c --notify copy screen" + "${modKey}, Print, exec, ${pkgs.grimblast}/bin/grimblast -c --notify copy active" + "${modKey} SHIFT, Print, exec, ${pkgs.grimblast}/bin/grimblast -c --notify copy area" + "${modKey}, R, exec, ${pkgs.dolphin}/bin/dolphin" + "${modKey} SHIFT, C, exec, hyprctl reload" + ]; + + bindm = [ + "${modKey}, mouse:272, movewindow" + "${modKey}, mouse:273, resizewindow" + ]; + + layerrule = [ + "blur, notifications" + "ignorezero, notifications" + "blur, gtk-layer-shell" + "blur, bar-0" + "blur, bar-1" + "blur, notificationPopupWindow" + "ignorezero, notificationPopupWindow" + ]; + + windowrulev2 = [ + "fullscreen, class:^(hl2_linux)$" + "float, class:^(org.kde.dolphin)$" + ]; + }; + }; +} diff --git a/user/home.nix b/user/home.nix index 678e9a2..99bb2be 100755 --- a/user/home.nix +++ b/user/home.nix @@ -2,6 +2,7 @@ config, pkgs, inputs, + system, ... }: { imports = [ @@ -25,11 +26,11 @@ home.homeDirectory = "/home/manuel"; home.packages = with pkgs; [ appimage-run + armcord bc bottles bottom calcurse - discord electron gamescope_git gimp @@ -69,18 +70,15 @@ twemoji-color-font vimv vulkan-tools - vulkan-validation-layers xdg-utils - xivlauncher + wqy_zenhei #fix for missing non-ascii fonts in TF2 ]; home.sessionVariables = { EDITOR = "nvim"; GTK_THEME = "${builtins.toString config.gtk.theme.name}"; - MESA_DISK_CACHE_SINGLE_FILE = "1"; NIXOS_OZONE_WL = "1"; NIXPKGS_ALLOW_UNFREE = "1"; - RADV_PERFTEST = "gpl"; WINEDLLOVERRIDES = "winemenubuilder.exe=d"; XDG_SCREENSHOTS_DIR = "~/Screenshots"; };