2023-12-04 00:40:27 -05:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
hyprland,
|
|
|
|
hyprgrass,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
2023-12-09 17:14:12 -05:00
|
|
|
}:
|
|
|
|
with lib; let
|
2023-12-04 00:40:27 -05:00
|
|
|
# Config stuff
|
2024-01-09 13:13:04 -05:00
|
|
|
inherit (config.vars) configDir mainUser mainMonitor;
|
2023-12-04 00:40:27 -05:00
|
|
|
isNvidia = config.hardware.nvidia.modesetting.enable;
|
|
|
|
isTouchscreen = config.hardware.sensor.iio.enable;
|
|
|
|
in {
|
2023-12-04 01:13:24 -05:00
|
|
|
# SYSTEM CONFIG
|
2023-12-04 10:05:25 -05:00
|
|
|
imports = [
|
|
|
|
../greetd
|
|
|
|
../dolphin.nix
|
|
|
|
];
|
2023-12-04 01:13:24 -05:00
|
|
|
|
2023-12-06 15:04:52 -05:00
|
|
|
security.pam.services.swaylock = {};
|
|
|
|
|
2023-12-04 01:13:24 -05:00
|
|
|
programs = {
|
|
|
|
kdeconnect.enable = true;
|
|
|
|
dconf.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
services = {
|
2023-12-04 10:05:25 -05:00
|
|
|
gnome.gnome-keyring.enable = true;
|
2023-12-04 01:13:24 -05:00
|
|
|
dbus.enable = true;
|
|
|
|
gvfs.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
xdg.portal = {
|
|
|
|
enable = true;
|
|
|
|
wlr.enable = true;
|
|
|
|
extraPortals = [
|
|
|
|
pkgs.xdg-desktop-portal-gtk
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
# HOME-MANAGER CONFIG
|
2024-01-09 13:13:04 -05:00
|
|
|
home-manager.users.${mainUser} = {
|
2023-12-04 00:40:27 -05:00
|
|
|
imports = [
|
2024-01-15 00:19:17 -05:00
|
|
|
../../home/foot.nix
|
2023-12-04 10:05:25 -05:00
|
|
|
../../home/dconf.nix
|
2023-12-16 16:03:36 -05:00
|
|
|
../../home/mpv
|
2023-12-04 10:05:25 -05:00
|
|
|
../../home/obs.nix
|
2023-12-06 15:04:52 -05:00
|
|
|
../../home/swaylock.nix
|
2023-12-04 10:05:25 -05:00
|
|
|
../../home/theme.nix
|
2023-12-04 00:40:27 -05:00
|
|
|
../../home/wofi
|
|
|
|
];
|
|
|
|
|
|
|
|
wayland.windowManager.hyprland = {
|
|
|
|
enable = true;
|
2023-12-08 12:48:48 -05:00
|
|
|
package = hyprland.packages.${pkgs.system}.default;
|
2023-12-04 00:40:27 -05:00
|
|
|
|
|
|
|
plugins =
|
|
|
|
[]
|
|
|
|
++ (optionals isTouchscreen [
|
|
|
|
hyprgrass.packages.${pkgs.system}.default
|
|
|
|
]);
|
|
|
|
|
|
|
|
settings = {
|
2023-12-04 10:05:25 -05:00
|
|
|
env = let
|
2023-12-09 17:14:12 -05:00
|
|
|
gset = pkgs.gsettings-desktop-schemas;
|
|
|
|
in
|
|
|
|
[
|
2023-12-04 00:40:27 -05:00
|
|
|
"XCURSOR_SIZE, 24"
|
|
|
|
"XDG_DATA_DIRS, ${builtins.concatStringsSep ":" [
|
|
|
|
"${gset}/share/gsettings-schemas/${gset.name}"
|
|
|
|
"${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}"
|
|
|
|
"$XDG_DATA_DIRS"
|
|
|
|
]}"
|
|
|
|
]
|
|
|
|
++ (optionals isNvidia [
|
|
|
|
"LIBVA_DRIVER_NAME, nvidia"
|
|
|
|
"XDG_SESSION_TYPE, wayland"
|
|
|
|
"GBM_BACKEND, nvidia-drm"
|
|
|
|
"__GLX_VENDOR_LIBRARY_NAME, nvidia"
|
|
|
|
"WLR_NO_HARDWARE_CURSORS, 1"
|
|
|
|
]);
|
|
|
|
|
|
|
|
xwayland.force_zero_scaling = true;
|
|
|
|
monitor = [
|
2023-12-27 11:39:38 -05:00
|
|
|
(concatStringsSep "," [
|
2023-12-04 00:40:27 -05:00
|
|
|
"desc:Acer Technologies Acer K212HQL T3EAA0014201"
|
|
|
|
"1920x1080@60"
|
|
|
|
"840x1000, 1, transform, 3"
|
|
|
|
])
|
2023-12-27 11:39:38 -05:00
|
|
|
(concatStringsSep "," [
|
2023-12-04 00:40:27 -05:00
|
|
|
"desc:BOE 0x0964"
|
|
|
|
"1920x1200@60"
|
|
|
|
"0x2920, 1"
|
|
|
|
])
|
2023-12-27 11:39:38 -05:00
|
|
|
(concatStringsSep "," [
|
2023-12-04 00:40:27 -05:00
|
|
|
"desc:Samsung Electric Company C27JG5x HTOM100586"
|
|
|
|
"2560x1440@60"
|
|
|
|
"1920x120, 1"
|
|
|
|
])
|
2023-12-27 11:39:38 -05:00
|
|
|
(concatStringsSep "," [
|
2023-12-04 00:40:27 -05:00
|
|
|
"desc:GIGA-BYTE TECHNOLOGY CO. LTD. G27QC 0x00000B1D"
|
|
|
|
"2560x1440@165"
|
|
|
|
"1920x1560, 1"
|
|
|
|
])
|
|
|
|
];
|
|
|
|
|
2023-12-04 10:05:25 -05:00
|
|
|
input = let
|
2024-01-09 13:13:04 -05:00
|
|
|
inherit (config.services) xserver;
|
2023-12-04 10:05:25 -05:00
|
|
|
in {
|
2023-12-04 00:40:27 -05:00
|
|
|
kb_layout = xserver.layout;
|
|
|
|
kb_variant = xserver.xkbVariant;
|
|
|
|
follow_mouse = true;
|
|
|
|
|
|
|
|
touchpad.natural_scroll = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
exec-once =
|
|
|
|
[
|
|
|
|
"hyprctl setcursor Dracula-cursors 24"
|
2023-12-04 10:05:25 -05:00
|
|
|
"${pkgs.plasma5Packages.polkit-kde-agent}/libexec/polkit-kde-authentication-agent-1"
|
2023-12-04 00:40:27 -05:00
|
|
|
"swww init --no-cache && swww img -t none ${pkgs.dracula-theme}/wallpapers/waves.png"
|
|
|
|
"wl-paste --watch cliphist store"
|
2023-12-04 10:05:25 -05:00
|
|
|
"${config.programs.kdeconnect.package}/libexec/kdeconnectd"
|
2023-12-04 00:40:27 -05:00
|
|
|
"kdeconnect-indicator"
|
|
|
|
"gnome-keyring-daemon --start --components=secrets"
|
2023-12-09 17:14:12 -05:00
|
|
|
]
|
2024-01-09 13:13:04 -05:00
|
|
|
++ optionals (! isNull mainMonitor)
|
|
|
|
["hyprctl dispatch focusmonitor ${mainMonitor}"];
|
2023-12-04 00:40:27 -05:00
|
|
|
|
|
|
|
windowrule = [
|
|
|
|
"noborder,^(wofi)$"
|
|
|
|
|
|
|
|
# Polkit
|
|
|
|
"float,^(org.kde.polkit-kde-authentication-agent-1)$"
|
|
|
|
"size 741 288,^(org.kde.polkit-kde-authentication-agent-1)$"
|
|
|
|
"center,^(org.kde.polkit-kde-authentication-agent-1)$"
|
|
|
|
];
|
|
|
|
|
|
|
|
"$mainMod" = "SUPER";
|
|
|
|
|
|
|
|
bind = [
|
|
|
|
# Defaults
|
2023-12-06 15:04:52 -05:00
|
|
|
"$mainMod, L, exec, lock"
|
2024-01-15 00:19:17 -05:00
|
|
|
"$mainMod, Q, exec, foot"
|
2023-12-04 00:40:27 -05:00
|
|
|
"$mainMod, F, fullscreen"
|
|
|
|
"$mainMod, C, killactive, "
|
|
|
|
"$mainMod SHIFT, SPACE, togglefloating, "
|
|
|
|
"$mainMod, J, layoutmsg, togglesplit"
|
|
|
|
|
|
|
|
## Move focus with arrow keys
|
|
|
|
"$mainMod, left, movefocus, l"
|
|
|
|
"$mainMod, right, movefocus, r"
|
|
|
|
"$mainMod, up, movefocus, u"
|
|
|
|
"$mainMod, down, movefocus, d"
|
|
|
|
|
|
|
|
## Move to specific workspaces
|
|
|
|
"$mainMod, 1, workspace, 1"
|
|
|
|
"$mainMod, 2, workspace, 2"
|
|
|
|
"$mainMod, 3, workspace, 3"
|
|
|
|
"$mainMod, 4, workspace, 4"
|
|
|
|
"$mainMod, 5, workspace, 5"
|
|
|
|
"$mainMod, 6, workspace, 6"
|
|
|
|
"$mainMod, 7, workspace, 7"
|
|
|
|
"$mainMod, 8, workspace, 8"
|
|
|
|
"$mainMod, 9, workspace, 9"
|
|
|
|
"$mainMod, 0, workspace, 10"
|
|
|
|
|
|
|
|
# Move active window to a workspace
|
|
|
|
"$mainMod SHIFT, 1, movetoworkspace, 1"
|
|
|
|
"$mainMod SHIFT, 2, movetoworkspace, 2"
|
|
|
|
"$mainMod SHIFT, 3, movetoworkspace, 3"
|
|
|
|
"$mainMod SHIFT, 4, movetoworkspace, 4"
|
|
|
|
"$mainMod SHIFT, 5, movetoworkspace, 5"
|
|
|
|
"$mainMod SHIFT, 6, movetoworkspace, 6"
|
|
|
|
"$mainMod SHIFT, 7, movetoworkspace, 7"
|
|
|
|
"$mainMod SHIFT, 8, movetoworkspace, 8"
|
|
|
|
"$mainMod SHIFT, 9, movetoworkspace, 9"
|
|
|
|
"$mainMod SHIFT, 0, movetoworkspace, 10"
|
|
|
|
|
|
|
|
# Clipboard History
|
|
|
|
"$mainMod, V, exec, killall -r wofi || cliphist list | wofi --dmenu | cliphist decode | wl-copy"
|
|
|
|
|
|
|
|
",Print, exec, grim -g \"$(slurp)\" - | swappy -f -"
|
|
|
|
"$mainMod SHIFT, C, exec, wl-color-picker"
|
|
|
|
|
2023-12-15 09:17:03 -05:00
|
|
|
",XF86AudioMute, exec, pactl set-sink-mute @DEFAULT_SINK@ toggle & ags -r 'showSpeaker()' &"
|
2023-12-04 00:40:27 -05:00
|
|
|
",XF86AudioMicMute, exec, pactl set-source-mute @DEFAULT_SOURCE@ toggle"
|
|
|
|
];
|
|
|
|
|
|
|
|
binde = [
|
2023-12-15 09:17:03 -05:00
|
|
|
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ & ags -r 'showSpeaker()' &"
|
|
|
|
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- & ags -r 'showSpeaker()' &"
|
2023-12-04 00:40:27 -05:00
|
|
|
];
|
|
|
|
|
|
|
|
# Mouse Binds
|
|
|
|
bindm = [
|
|
|
|
"$mainMod, mouse:272, movewindow"
|
|
|
|
"$mainMod, mouse:273, resizewindow"
|
|
|
|
];
|
|
|
|
|
|
|
|
misc = {
|
|
|
|
disable_hyprland_logo = true;
|
|
|
|
disable_splash_rendering = true;
|
|
|
|
vfr = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
dwindle = {
|
|
|
|
smart_split = true;
|
|
|
|
special_scale_factor = 0.8;
|
|
|
|
};
|
|
|
|
|
2024-01-09 13:13:04 -05:00
|
|
|
source = ["${configDir}/hypr/main.conf"];
|
2023-12-04 00:40:27 -05:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
home.packages = with pkgs; [
|
2023-12-04 10:05:25 -05:00
|
|
|
# School
|
|
|
|
virt-manager
|
2024-01-13 09:37:15 -05:00
|
|
|
jetbrains.idea-ultimate
|
2023-12-04 10:05:25 -05:00
|
|
|
libreoffice-fresh # TODO: declarative conf?
|
|
|
|
hunspell
|
|
|
|
hunspellDicts.en_CA
|
|
|
|
|
|
|
|
# Apps
|
|
|
|
thunderbird # TODO: use programs.thunderbird
|
|
|
|
spotifywm
|
|
|
|
photoqt
|
|
|
|
nextcloud-client
|
|
|
|
jellyfin-media-player
|
|
|
|
xournalpp
|
|
|
|
(pkgs.discord.override {
|
|
|
|
withOpenASAR = true;
|
|
|
|
withVencord = true;
|
|
|
|
})
|
|
|
|
prismlauncher-qt5
|
|
|
|
|
2023-12-04 00:40:27 -05:00
|
|
|
# tools
|
|
|
|
wl-color-picker
|
2023-12-04 10:05:25 -05:00
|
|
|
wl-clipboard
|
|
|
|
cliphist
|
2023-12-04 00:40:27 -05:00
|
|
|
grim
|
|
|
|
slurp
|
|
|
|
swappy
|
|
|
|
swayidle
|
|
|
|
bluez-tools
|
|
|
|
brightnessctl
|
|
|
|
pulseaudio
|
2023-12-04 01:13:24 -05:00
|
|
|
alsa-utils
|
2023-12-04 00:40:27 -05:00
|
|
|
gnome.seahorse
|
2023-12-04 01:13:24 -05:00
|
|
|
p7zip # for reshade
|
2023-12-04 00:40:27 -05:00
|
|
|
|
|
|
|
swww
|
|
|
|
|
|
|
|
## libs
|
|
|
|
qt5.qtwayland
|
|
|
|
qt6.qtwayland
|
|
|
|
libayatana-appindicator
|
|
|
|
xdg-utils
|
|
|
|
evtest
|
|
|
|
glib
|
|
|
|
xorg.xrandr
|
|
|
|
libinput
|
|
|
|
xclip
|
|
|
|
libnotify
|
|
|
|
];
|
|
|
|
};
|
|
|
|
}
|