mirror of
https://github.com/alyraffauf/nixcfg.git
synced 2024-11-26 12:11:54 -05:00
229 lines
7.5 KiB
Nix
229 lines
7.5 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}: {
|
|
options = {
|
|
desktopEnv.sway.enable = lib.mkEnableOption "Sway with extra apps.";
|
|
};
|
|
|
|
config = lib.mkIf config.desktopEnv.sway.enable {
|
|
# Basic apps needed to run a hyprland desktop.
|
|
guiApps.waybar.enable = lib.mkDefault true;
|
|
guiApps.mako.enable = lib.mkDefault true;
|
|
guiApps.fuzzel.enable = lib.mkDefault true;
|
|
guiApps.wlogout.enable = lib.mkDefault true;
|
|
guiApps.alacritty.enable = lib.mkDefault true;
|
|
guiApps.firefox.enable = lib.mkDefault true;
|
|
guiApps.kanshi.enable = lib.mkDefault true;
|
|
|
|
# Packages that should be installed to the user profile.
|
|
home.packages = with pkgs; [
|
|
# brightnessctl
|
|
# hyprnome
|
|
celluloid
|
|
evince
|
|
gnome.eog
|
|
gnome.file-roller
|
|
kdePackages.polkit-kde-agent-1
|
|
networkmanagerapplet
|
|
playerctl
|
|
swayosd
|
|
trayscale
|
|
xfce.exo
|
|
xfce.thunar
|
|
xfce.thunar-archive-plugin
|
|
xfce.thunar-media-tags-plugin
|
|
xfce.thunar-volman
|
|
xfce.tumbler
|
|
xfce.xfce4-settings
|
|
xfce.xfce4-taskmanager
|
|
xfce.xfconf
|
|
swayidle
|
|
];
|
|
|
|
programs.swaylock.enable = lib.mkDefault true;
|
|
|
|
services.cliphist.enable = lib.mkDefault true;
|
|
|
|
wayland.windowManager.sway.enable = true;
|
|
wayland.windowManager.sway.config = let
|
|
modifier = "Mod4";
|
|
|
|
# Default apps
|
|
browser = pkgs.firefox + "/bin/firefox";
|
|
fileManager = pkgs.xfce.thunar + "/bin/thunar";
|
|
editor = pkgs.vscodium + "/bin/codium";
|
|
terminal = pkgs.alacritty + "/bin/alacritty";
|
|
|
|
# River desktop utilities
|
|
bar = pkgs.waybar + "/bin/waybar";
|
|
launcher = pkgs.fuzzel + "/bin/fuzzel";
|
|
notifyd = pkgs.mako + "/bin/mako";
|
|
wallpaperd = pkgs.swaybg + "/bin/swaybg";
|
|
idle = pkgs.swayidle + "/bin/swayidle";
|
|
logout = pkgs.wlogout + "/bin/wlogout";
|
|
lock = pkgs.swaylock + "/bin/swaylock -f -c 000000";
|
|
|
|
brightness = "${pkgs.swayosd}/bin/swayosd-client";
|
|
brightness_up = "${brightness} --brightness=raise";
|
|
brightness_down = "${brightness} --brightness=lower";
|
|
volume = "${pkgs.swayosd}/bin/swayosd-client";
|
|
volume_up = "${volume} --output-volume=raise";
|
|
volume_down = "${volume} --output-volume=lower";
|
|
volume_mute = "${volume} --output-volume=mute-toggle";
|
|
mic_mute = "${volume} --input-volume=mute-toggle";
|
|
media = "${pkgs.playerctl}/bin/playerctl";
|
|
media_play = "${media} play-pause";
|
|
media_next = "${media} next";
|
|
media_previous = "${media} previous";
|
|
|
|
# screenshot = "${pkgs.hyprshot}/bin/hyprshot";
|
|
# screenshot_folder = "~/pics/screenshots";
|
|
# screenshot_screen = "${screenshot} -m output -o ${screenshot_folder}";
|
|
# screenshot_region = "${screenshot} -m region -o ${screenshot_folder}";
|
|
|
|
# Color, themes, scaling
|
|
colorPrimary = "ca9ee6ee";
|
|
colorSecondary = "99d1dbee";
|
|
border_inactive = "303446aa";
|
|
drop_shadow = "1a1a1aee";
|
|
cursor_size = "24";
|
|
qt_platform_theme = "gtk2";
|
|
gdk_scale = "1.5";
|
|
in {
|
|
bars = [{command = "${bar}";}];
|
|
# bars.waybar.command = "${pkgs.waybar}/bin/waybar";
|
|
terminal = "${terminal}";
|
|
menu = "${launcher}";
|
|
modifier = "${modifier}";
|
|
colors.background = "${colorPrimary}";
|
|
colors.focused = {
|
|
background = "${colorPrimary}";
|
|
border = "${colorPrimary}";
|
|
childBorder = "${colorPrimary}";
|
|
indicator = "${colorPrimary}";
|
|
text = "#ffffff";
|
|
};
|
|
colors.focusedInactive = {
|
|
background = "${colorSecondary}";
|
|
border = "${colorSecondary}";
|
|
childBorder = "${colorSecondary}";
|
|
indicator = "${colorSecondary}";
|
|
text = "#ffffff";
|
|
};
|
|
colors.unfocused = {
|
|
background = "${colorSecondary}";
|
|
border = "${colorSecondary}";
|
|
childBorder = "${colorSecondary}";
|
|
indicator = "${colorSecondary}";
|
|
text = "#ffffff";
|
|
};
|
|
gaps.inner = 5;
|
|
gaps.outer = 10;
|
|
window.titlebar = false;
|
|
fonts = {
|
|
names = ["Noto SansM Nerd Font"];
|
|
style = "Bold";
|
|
size = 12.0;
|
|
};
|
|
startup = [
|
|
# { command = "${pkgs.kanshi}"; }
|
|
{command = "nm-applet";}
|
|
{command = "swayosd-server";}
|
|
{command = "thunar --daemon";}
|
|
{command = "${pkgs.swayidle}/bin/swayidle -w timeout 300 '${pkgs.swaylock}/bin/swaylock' before-sleep '${pkgs.swaylock}/bin/swaylock'";}
|
|
];
|
|
output = {
|
|
"BOE 0x095F Unknown" = {
|
|
scale = "1.5";
|
|
};
|
|
};
|
|
input = {
|
|
"type:touchpad" = {
|
|
click_method = "clickfinger";
|
|
dwt = "enabled";
|
|
natural_scroll = "enabled";
|
|
scroll_method = "two_finger";
|
|
tap = "enabled";
|
|
tap_button_map = "lrm";
|
|
};
|
|
};
|
|
keybindings = lib.mkOptionDefault {
|
|
"${modifier}+r" = "exec ${launcher}";
|
|
"${modifier}+t" = "exec ${terminal}";
|
|
"${modifier}+b" = "exec ${browser}";
|
|
"${modifier}+e" = "exec ${editor}";
|
|
"${modifier}+f" = "exec ${fileManager}";
|
|
|
|
"${modifier}+c" = "kill";
|
|
|
|
"${modifier}+l" = "exec ${lock}";
|
|
"${modifier}+m" = "exec ${logout}";
|
|
|
|
"${modifier}+w" = "fullscreen toggle";
|
|
"${modifier}+v" = "floating toggle";
|
|
|
|
"${modifier}+s" = "scratchpad show";
|
|
"${modifier}+Shift+s" = "move scratchpad";
|
|
|
|
"${modifier}+period" = "workspace next";
|
|
"${modifier}+comma" = "workspace prev";
|
|
|
|
"${modifier}+1" = "workspace number 1";
|
|
"${modifier}+2" = "workspace number 2";
|
|
"${modifier}+3" = "workspace number 3";
|
|
"${modifier}+4" = "workspace number 4";
|
|
"${modifier}+5" = "workspace number 5";
|
|
"${modifier}+6" = "workspace number 6";
|
|
"${modifier}+7" = "workspace number 7";
|
|
"${modifier}+8" = "workspace number 8";
|
|
"${modifier}+9" = "workspace number 9";
|
|
|
|
"${modifier}+Shift+period" = "move container to workspace next; workspace next";
|
|
"${modifier}+Shift+comma" = "move container to workspace prev; workspace prev";
|
|
|
|
"${modifier}+Shift+1" = "move container to workspace number 1";
|
|
"${modifier}+Shift+2" = "move container to workspace number 2";
|
|
"${modifier}+Shift+3" = "move container to workspace number 3";
|
|
"${modifier}+Shift+4" = "move container to workspace number 4";
|
|
"${modifier}+Shift+5" = "move container to workspace number 5";
|
|
"${modifier}+Shift+6" = "move container to workspace number 6";
|
|
"${modifier}+Shift+7" = "move container to workspace number 7";
|
|
"${modifier}+Shift+8" = "move container to workspace number 8";
|
|
"${modifier}+Shift+9" = "move container to workspace number 9";
|
|
|
|
# audio control
|
|
"XF86AudioRaiseVolume" = "exec ${volume_up}";
|
|
"XF86AudioLowerVolume" = "exec ${volume_down}";
|
|
"XF86AudioMute" = "exec ${volume_mute}";
|
|
|
|
# mic control
|
|
"XF86AudioMicMute" = "exec ${mic_mute}";
|
|
|
|
# brightness
|
|
"XF86MonBrightnessUp" = "exec ${brightness_up}";
|
|
"XF86MonBrightnessDown" = "exec ${brightness_down}";
|
|
};
|
|
};
|
|
|
|
wayland.windowManager.sway.extraConfig = ''
|
|
bindgesture swipe:right workspace prev
|
|
bindgesture swipe:left workspace next
|
|
'';
|
|
|
|
xdg.configFile."xfce4/helpers.rc".text = ''
|
|
TerminalEmulator=alacritty
|
|
FileManager=thunar
|
|
WebBrowser=firefox
|
|
'';
|
|
|
|
xdg.portal = {
|
|
enable = true;
|
|
configPackages = [pkgs.xdg-desktop-portal-wlr];
|
|
extraPortals = [pkgs.xdg-desktop-portal-wlr];
|
|
};
|
|
};
|
|
}
|