diff --git a/hosts/installer/movcfg-install.sh b/hosts/installer/movcfg-install.sh deleted file mode 100644 index 4c03e68..0000000 --- a/hosts/installer/movcfg-install.sh +++ /dev/null @@ -1,194 +0,0 @@ -#!/run/current-system/sw/bin/bash -echo "Welcome. This script will install pagedMov's NixOS configuration flake onto your machine." -echo "If this script stops at any point, it will resume from the most recent major step when you call it again." -echo "Call the script with --reset to restart the installation process" - -set -e -trap 'echo "Aborting installation."; exit 1' INT - -if [ "$1" = "--reset" ]; then - rm -rf /tmp/reset -fi - -if [ ! -f /tmp/install_steps ]; then - echo "0" > /tmp/install_steps -fi - -install_step=$(cat /tmp/install_steps) - -step_1() { - # set up working directory - mkdir -p /tmp/install_pwd && cd /tmp/install_pwd - rm -rf ./* - - # download disko.nix file for defining partitions - echo -n "Downloading partition plan..." - curl -s https://raw.githubusercontent.com/pagedMov/pagedmov-nix-cfg/refs/heads/master/hosts/installer/disko-ext4-singledisk.nix > disko.nix - echo "Done!" - - echo - echo "This script is about to format and partition a hard drive." - sleep 2.5 - echo -e "\033[4;31mThis process is irreversible and will destroy all data on the drive.\033[0m" - sleep 2.5 - echo "Make absolutely sure that you know which drive you are choosing." - sleep 2.5 - echo - lsblk -d -o NAME,SIZE - echo - echo -n "Which drive do you wish to sacrifice? " - read -r drive - - size=$(lsblk -b -d -o NAME,SIZE | grep "$drive" | awk '{ printf "%.0f\n", $2 / 1024 / 1024 / 1024 }') - size=$((size-1)) - root_size_default=$(echo "scale=0;$size * 0.10 / 1" | bc) - nix_size_default=$(echo "scale=0;$size * 0.35 / 1" | bc) - - echo - for part in "root" "nix"; do - echo "You have $size GB remaining to work with on this drive. How big do you want your $part partition?" - - if [ "$part" = "root" ]; then - echo "Default value is 10% of hard drive space ($root_size_default GB)" - else - echo "Default value is 35% of hard drive space ($nix_size_default GB)" - fi - echo "Give a positive integer or leave blank to use default value" - echo - deciding=true - - while $deciding; do - echo -n "> " - read -r size_choice - - case "$size_choice" in - '') - deciding=false - ;; - *[!0-9]*) # Matches non-numeric input - echo "Invalid input. Please enter a valid positive number." - ;; - 0) # Matches zero - echo "Please enter a positive number greater than zero." - ;; - *) # Matches positive numbers - if (( size_choice > size - 50 )); then - echo "You need to leave more room for the other partitions." - elif (( size_choice < 5 )); then - echo "Partition size is too small." - else - echo "Valid input: $size_choice" - deciding=false # Exit the loop on valid input - fi - ;; - esac - done - - case "$part" in - "root" ) - if [ -z "$size_choice" ]; then root_size=$root_size_default; else root_size=$size_choice; fi - size=$((size - root_size)) - ;; - "nix" ) - if [ -z "$size_choice" ]; then nix_size=$nix_size_default; else nix_size=$size_choice; fi - size=$((size - nix_size)) - ;; - esac - done - - echo - echo "Final partition sizes:" - echo "root: $root_size GB" - echo "nix: $nix_size GB" - echo "home: $size GB" - echo - - sleep 1 - - # commence formatting - echo "Commencing formatting/partitioning..." && sleep 0.5 - nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko /tmp/install_pwd/disko.nix --arg device "\"/dev/$drive\"" --arg root_size "\"$root_size\G\"" --arg nix_size "\"$nix_size\G\"" - - mount /dev/disk/by-partlabel/disk-main-root /mnt - mkdir -p /mnt/nix && mount /dev/disk/by-partlabel/disk-main-nix /mnt/nix - mkdir -p /mnt/boot && mount /dev/disk/by-partlabel/disk-main-ESP /mnt/boot - mkdir -p /mnt/home && mount /dev/disk/by-partlabel/disk-main-home /mnt/home -} - -step_2() { - mkdir -p /mnt/etc - cd /mnt/etc/ - if [ ! -d ./nixos ]; then - git clone https://github.com/pagedMov/nixos-config.git ./nixos - - echo - echo "Do you want to install the light or heavy configuration?" - echo "Light configuration does not include gaming or virtualization features; intended for laptops, etc." - echo "Heavy config includes gaming and virtualization features; intended for performant desktop environments." - echo - select config in "Heavy" "Light" "Quit"; do - case $config in - "Heavy") - echo "Installing heavy configuration \`Oganesson\`" - config="oganesson" - sleep 0.5 - break - ;; - "Light") - echo "Installing light configuration \`Mercury\`" - config="mercury" - sleep 0.5 - break - ;; - "Quit") - echo "Exiting installation..." - sleep 0.5 - exit 0 - ;; - *) - echo "Invalid option." - sleep 0.5 - ;; - esac - done - fi - - nixos-install --root /mnt --flake /mnt/etc/nixos#"$config" --no-root-password - - echo - echo "Preliminary installation successful!" - echo "Beginning secondary installation phase..." - echo -} - -step_3() { -cp -r /mnt/etc/nixos /mnt/home/pagedmov/.sysflake -rm -rf /mnt/etc/nixos -ln -s /mnt/home/pagedmov/.sysflake /etc/nixos - -nixos-enter <<-HEREDOC -chown -R pagedmov /home/pagedmov/.sysflake -nixos-generate-config --show-hardware-config > /home/pagedmov/.sysflake/hosts/laptop/hardware.nix -NIXOS_SWITCH_USE_DIRTY_ENV=1 nixos-rebuild boot --flake /home/pagedmov/.sysflake#$config -HEREDOC - -echo "INSTALLATION COMPLETE ! !" | toilet -f 3d -w 120 | lolcat -a -s 180 -echo "You can now reboot into your new system." -echo "The system configuration flake will be found in your home folder under .sysflake" -echo "/etc/nixos is a symlink leading to the .sysflake folder" -} - -next_step() { - ((install_step += 1)) - echo $install_step > /tmp/install_steps -} - -running=true -while $running; do - case $install_step in - 0) step_1;next_step;; - 1) step_2;next_step;; - 2) step_3;next_step;; - 3) step_4;next_step;; - esac -done diff --git a/modules/home/environment/default.nix b/modules/home/environment/default.nix index 52430fa..ce264f9 100644 --- a/modules/home/environment/default.nix +++ b/modules/home/environment/default.nix @@ -15,7 +15,7 @@ ++ [(import ./starship.nix)] ++ [(import ./userpkgs.nix)] ++ [(import ./zshell.nix)] + ++ [(import ./swaync.nix)] ++ [(import ./waybar)] - ++ [(import ./hyprland)] - ++ [(import ./swaync)]; + ++ [(import ./hyprland)]; } diff --git a/modules/home/environment/swaync.nix b/modules/home/environment/swaync.nix new file mode 100644 index 0000000..da1e01f --- /dev/null +++ b/modules/home/environment/swaync.nix @@ -0,0 +1,743 @@ +{pkgs, ...}: { + home.packages = with pkgs; [swaynotificationcenter]; + xdg.configFile."swaync/style.css".text = '' + @define-color shadow rgba(0, 0, 0, 0.25); + /* + * + * Catppuccin Mocha palette + * Maintainer: rubyowo + * + */ + + @define-color base #1E1D2E; + @define-color mantle #181825; + @define-color crust #11111b; + + @define-color text #cdd6f4; + @define-color subtext0 #a6adc8; + @define-color subtext1 #bac2de; + + @define-color surface0 #313244; + @define-color surface1 #45475a; + @define-color surface2 #585b70; + + @define-color overlay0 #6c7086; + @define-color overlay1 #7f849c; + @define-color overlay2 #9399b2; + + @define-color blue #89b4fa; + @define-color lavender #b4befe; + @define-color sapphire #74c7ec; + @define-color sky #89dceb; + @define-color teal #94e2d5; + @define-color green #a6e3a1; + @define-color yellow #f9e2af; + @define-color peach #fab387; + @define-color maroon #eba0ac; + @define-color red #f38ba8; + @define-color mauve #cba6f7; + @define-color pink #f5c2e7; + @define-color flamingo #f2cdcd; + @define-color rosewater #f5e0dc; + + * { + font-family: "NotoSansMono Nerd Font"; + background-clip: border-box; + } + + /* #notifications_box { */ + /* border: solid 4px red; */ + /* } */ + + label { + color: @text; + } + + .notification { + border: @lavender; + box-shadow: none; + /* margin: 0px; */ + /* margin: -15px -10px -15px -10px; */ + border-radius: 4px; + background: inherit; + /* background: @theme_bg_color; */ + /* background: shade(alpha(@borders, 2.55), 0.25); */ + } + + .notification button { + background: transparent; + border-radius: 0px; + border: none; + margin: 0px; + padding: 0px; + } + + .notification button:hover { + background: @surface0; + /* background: @insensitive_bg_color; */ + } + + + .notification-content { + min-height: 64px; + margin: 10px; + padding: 0px; + border-radius: 0px; + } + + .close-button { + background: @crust; + color: @surface2; + } + + .notification-default-action, + .notification-action { + background: transparent; + border: none; + } + + + .notification-default-action { + border-radius: 4px; + } + + /* When alternative actions are visible */ + .notification-default-action:not(:only-child) { + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; + } + + .notification-action { + border-radius: 0px; + padding: 2px; + color: @text; + /* color: @theme_text_color; */ + } + + /* add bottom border radius to eliminate clipping */ + .notification-action:first-child { + border-bottom-left-radius: 4px; + } + + .notification-action:last-child { + border-bottom-right-radius: 4px; + } + + /*** Notification ***/ + /* Notification header */ + .summary { + color: @text; + /* color: @theme_text_color; */ + font-size: 16px; + padding: 0px; + } + + .time { + color: @subtext0; + /* color: alpha(@theme_text_color, 0.9); */ + font-size: 12px; + text-shadow: none; + margin: 0px 0px 0px 0px; + padding: 2px 0px; + } + + .body { + font-size: 14px; + font-weight: 500; + color: @subtext1; + /* color: alpha(@text, 0.9); */ + /* color: alpha(@theme_text_color, 0.9); */ + text-shadow: none; + margin: 0px 0px 0px 0px; + } + + .body-image { + border-radius: 4px; + } + + /* The "Notifications" and "Do Not Disturb" text widget */ + .top-action-title { + color: @text; + /* color: @theme_text_color; */ + text-shadow: none; + } + + /* Control center */ + + .control-center { + /* background: transparent; */ + background: @crust; + /* background: @theme_bg_color; */ + /* border: 1px solid @surface0; */ + border-radius: 5px; + /* box-shadow: 0px 0px 2px black; */ + } + + /* .right.overlay-indicator { */ + /* border: solid 5px red; */ + /* } */ + + .control-center-list { + /* background: @base; */ + background: @crust; + min-height: 5px; + /* border: 1px solid @surface1; */ + border-top: none; + border-radius: 0px 0px 4px 4px; + } + + .control-center-list-placeholder, + .notification-group-icon, + .notification-group { + /* opacity: 1.0; */ + /* opacity: 0; */ + color: alpha(@theme_text_color, 0.50); + } + + .notification-group { + /* unset the annoying focus thingie */ + all: unset; + border: none; + opacity: 0; + padding: 0px; + box-shadow: none; + /* selectable: no; */ + } + .notification-group > box { + all: unset; + background: @mantle; + /* background: alpha(currentColor, 0.072); */ + padding: 8px; + margin: 0px; + /* margin: 0px -5px; */ + border: none; + border-radius: 4px; + box-shadow: none; + } + + + .notification-row { + outline: none; + transition: all 1s ease; + background: @base; + /* background: @theme_bg_color; */ + border: 1px solid @crust; + margin: 10px 5px 0px 5px; + border-radius: 4px; + /* box-shadow: 0px 0px 4px black; */ + /* background: alpha(currentColor, 0.05); */ + } + + .notification-row:focus, + .notification-row:hover { + box-shadow: none; + } + + .control-center-list > row, + .control-center-list > row:focus, + .control-center-list > row:hover { + background: transparent; + border: none; + margin: 0px; + padding: 5px 10px 5px 10px; + box-shadow: none; + } + + .control-center-list > row:last-child { + padding: 5px 10px 10px 10px; + } + + + /* Window behind control center and on all other monitors */ + .blank-window { + background: transparent; + } + + /*** Widgets ***/ + + /* Title widget */ + .widget-title { + margin: 0px; + background: inherit; + /* background: @theme_bg_color; */ + border-radius: 4px 4px 0px 0px; + /* border: 1px solid @surface1; */ + border-bottom: none; + padding-bottom: 20px; + } + + .widget-title > label { + margin: 18px 10px; + font-size: 20px; + font-weight: 500; + } + + .widget-title > button { + font-weight: 700; + padding: 7px 3px; + margin-right: 10px; + background: @mantle; + color: @text; + /* color: @theme_text_color; */ + /* border: none; */ + border-radius: 4px; + } + .widget-title > button:hover { + background: @base; + /* background: alpha(currentColor, 0.1); */ + } + + /* Label widget */ + .widget-label { + margin: 0px; + padding: 0px; + min-height: 5px; + background: @mantle; + /* background: @theme_bg_color; */ + border-radius: 0px 0px 4px 4px; + /* border: 1px solid @surface1; */ + border-top: none; + } + .widget-label > label { + font-size: 0px; + font-weight: 400; + } + + /* Menubar */ + .widget-menubar { + background: inherit; + /* background: @theme_bg_color; */ + /* border: 1px solid @surface1; */ + border-top: none; + border-bottom: none; + } + .widget-menubar > box > box { + margin: 5px 10px 5px 10px; + min-height: 40px; + border-radius: 4px; + background: transparent; + } + .widget-menubar > box > box > button { + background: @mantle; + /* background: alpha(currentColor, 0.05); */ + min-width: 85px; + min-height: 50px; + margin-right: 13px; + font-size: 17px; + padding: 0px; + } + .widget-menubar > box > box > button:nth-child(4) { + margin-right: 0px; + } + .widget-menubar button:focus { + box-shadow: none; + } + .widget-menubar button:focus:hover { + background: @base; + /* background: alpha(currentColor,0.1); */ + box-shadow: none; + } + + .widget-menubar > box > revealer > box { + margin: 5px 10px 5px 10px; + background: @mantle; + /* background: alpha(currentColor, 0.05); */ + border-radius: 4px; + } + .widget-menubar > box > revealer > box > button { + background: transparent; + min-height: 50px; + padding: 0px; + margin: 5px; + } + + /* Buttons grid */ + .widget-buttons-grid { + /* background-color: @theme_bg_color; */ + background-color: @mantle; + /* border: 1px solid @surface1; */ + border-top: none; + border-bottom: none; + font-size: 14px; + font-weight: 500; + margin: 0px; + padding: 5px; + border-radius: 0px; + } + + .widget-buttons-grid > flowbox > flowboxchild { + background: @mantle; + /* background: alpha(currentColor, 0.05); */ + border-radius: 4px; + min-height: 50px; + min-width: 85px; + margin: 5px; + padding: 0px; + } + + .widget-buttons-grid > flowbox > flowboxchild > button { + background: transparent; + border-radius: 4px; + margin: 0px; + border: none; + box-shadow: none; + } + + + .widget-buttons-grid > flowbox > flowboxchild > button:hover { + background: @mantle; + /* background: alpha(currentColor, 0.1); */ + } + + /* Mpris widget */ + .widget-mpris { + padding: 10px; + padding-bottom: 35px; + padding-top: 35px; + margin-bottom: -33px; + } + .widget-mpris > box { + padding: 0px; + margin: -5px 0px -10px 0px; + padding: 0px; + border-radius: 4px; + /* background: alpha(currentColor, 0.05); */ + background: @mantle; + } + .widget-mpris > box > button:nth-child(1), + .widget-mpris > box > button:nth-child(3) { + margin-bottom: 0px; + } + .widget-mpris > box > button:nth-child(1) { + margin-left: -25px; + margin-right: -25px; + opacity: 0; + } + .widget-mpris > box > button:nth-child(3) { + margin-left: -25px; + margin-right: -25px; + opacity: 0; + } + + .widget-mpris-album-art { + all: unset; + } + + /* Player button box */ + .widget-mpris > box > carousel > widget > box > box:nth-child(2) { + margin: 5px 0px -5px 90px; + } + + /* Player buttons */ + .widget-mpris > box > carousel > widget > box > box:nth-child(2) > button { + border-radius: 4px; + } + .widget-mpris > box > carousel > widget > box > box:nth-child(2) > button:hover { + background: alpha(currentColor, 0.1); + } + carouselindicatordots { + opacity: 0; + } + + .widget-mpris-title { + color: #eeeeee; + font-weight: bold; + font-size: 1.25rem; + text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); + } + .widget-mpris-subtitle { + color: #eeeeee; + font-size: 1rem; + text-shadow: 0px 0px 3px rgba(0, 0, 0, 1); + } + + .widget-mpris-player { + border-radius: 0px; + margin: 0px; + } + .widget-mpris-player > box > image { + margin: 0px 0px -48px 0px; + } + + .notification-group > box.vertical { + /* border: solid 5px red; */ + margin-top: 3px + } + + /* Backlight and volume widgets */ + .widget-backlight, + .widget-volume { + background-color: @crust; + /* background-color: @theme_bg_color; */ + /* border: 1px solid @surface1; */ + border-top: none; + border-bottom: none; font-size: 13px; + font-weight: 600; + border-radius: 0px; + margin: 0px; + padding: 0px; + } + .widget-volume > box { + background: @mantle; + /* background: alpha(currentColor, 0.05); */ + border-radius: 4px; + margin: 5px 10px 5px 10px; + min-height: 50px; + } + .widget-volume > box > label { + min-width: 50px; + padding: 0px; + } + .widget-volume > box > button { + min-width: 50px; + box-shadow: none; + padding: 0px; + } + .widget-volume > box > button:hover { + /* background: alpha(currentColor, 0.05); */ + background: @surface0; + } + .widget-volume > revealer > list { + background: @mantle; + /* background: alpha(currentColor, 0.05); */ + border-radius: 4px; + margin-top: 5px; + padding: 0px; + } + .widget-volume > revealer > list > row { + padding-left: 10px; + min-height: 40px; + background: transparent; + } + .widget-volume > revealer > list > row:hover { + background: transparent; + box-shadow: none; + border-radius: 4px; + } + .widget-backlight > scale { + background: @mantle; + /* background: alpha(currentColor, 0.05); */ + border-radius: 0px 4px 4px 0px; + margin: 5px 10px 5px 0px; + padding: 0px 10px 0px 0px; + min-height: 50px; + } + .widget-backlight > label { + background: @surface0; + /* background: alpha(currentColor, 0.05); */ + margin: 5px 0px 5px 10px; + border-radius: 4px 0px 0px 4px; + padding: 0px; + min-height: 50px; + min-width: 50px; + } + + /* DND widget */ + .widget-dnd { + margin: 8px; + font-size: 1.1rem; + padding-top: 20px; + } + + .widget-dnd>switch { + font-size: initial; + border-radius: 12px; + background: @surface0; + border: 1px solid @lavender; + box-shadow: none; + } + + .widget-dnd>switch:checked { + background: @surface2; + } + + .widget-dnd>switch slider { + background: @lavender; + border-radius: 12px; + } + + /* Toggles */ + .toggle:checked { + background: @surface1; + /* background: @theme_selected_bg_color; */ + } + /*.toggle:not(:checked) { + color: rgba(128, 128, 128, 0.5); + }*/ + .toggle:checked:hover { + background: @surface2; + /* background: alpha(@theme_selected_bg_color, 0.75); */ + } + + /* Sliders */ + scale { + padding: 0px; + margin: 0px 10px 0px 10px; + } + + scale trough { + border-radius: 4px; + background: @surface0; + /* background: alpha(currentColor, 0.1); */ + } + + scale highlight { + border-radius: 5px; + min-height: 10px; + margin-right: -5px; + } + + scale slider { + margin: -10px; + min-width: 10px; + min-height: 10px; + background: transparent; + box-shadow: none; + padding: 0px; + } + scale slider:hover { + } + + .right.overlay-indicator { + all: unset; + } + ''; + xdg.configFile."swaync/config.json".text = '' + { + "positionX": "right", + "positionY": "top", + "layer": "overlay", + "layer-shell": "true", + "cssPriority": "application", + "control-center-margin-top": 10, + "control-center-margin-bottom": 10, + "control-center-margin-right": 10, + "control-center-margin-left": 10, + "notification-icon-size": 64, + "notification-body-image-height": 128, + "notification-body-image-width": 200, + "timeout": 10, + "timeout-low": 5, + "timeout-critical": 0, + "fit-to-screen": true, + "control-center-width": 400, + "control-center-height": 650, + "notification-window-width": 350, + "keyboard-shortcuts": true, + "image-visibility": "when-available", + "transition-time": 200, + "hide-on-clear": false, + "hide-on-action": true, + "script-fail-notify": true, + "widgets": [ + "title", + "menubar#desktop", + "volume", + "backlight#mobile", + "mpris", + "dnd", + "notifications" + ], + "widget-config": { + "title": { + "text": "Notifications", + "clear-all-button": true, + "button-text": " Clear All " + }, + "menubar#desktop": { + "menu#powermode-buttons": { + "label": " 󰌪 ", + "position": "left", + "actions": [ + { + "label": "Performance", + "command": "powerprofilesctl set performance" + }, + { + "label": "Balanced", + "command": "powerprofilesctl set balanced" + }, + { + "label": "Power-saver", + "command": "powerprofilesctl set power-saver" + } + ] + }, + "menu#screenshot": { + "label": "  ", + "position": "left", + "actions": [ + { + "label": "󰹑 Whole screen", + "command": "grimblast --notify --cursor --freeze copy output" + }, + { + "label": "󰩭 Window / Region", + "command": "grimblast --notify --cursor --freeze copy area" + } + ] + }, + "menu#record": { + "label": " 󰕧 ", + "position": "left", + "actions": [ + { + "label": " Record screen", + "command": "record screen & ; swaync-client -t" + }, + { + "label": " Record selection", + "command": "record area & ; swaync-client -t" + }, + { + "label": " Record GIF", + "command": "record gif & ; swaync-client -t" + }, + { + "label": "󰻃 Stop", + "command": "record stop" + } + ] + }, + "menu#power-buttons": { + "label": "  ", + "position": "left", + "actions": [ + { + "label": " Lock", + "command": "swaylock" + }, + { + "label": " Reboot", + "command": "systemctl reboot" + }, + { + "label": " Shut down", + "command": "systemctl poweroff" + } + ] + } + }, + "backlight#mobile": { + "label": " 󰃠 ", + "device": "panel" + }, + "volume": { + "label": "", + "expand-button-label": "", + "collapse-button-label": "", + "show-per-app": true, + "show-per-app-icon": true, + "show-per-app-label": false + }, + "dnd": { + "text": " Do Not Disturb" + }, + "mpris": { + "image-size": 85, + "image-radius": 5 + } + } + } + ''; +} diff --git a/modules/home/environment/swaync/config.json b/modules/home/environment/swaync/config.json deleted file mode 100644 index 88450c9..0000000 --- a/modules/home/environment/swaync/config.json +++ /dev/null @@ -1,136 +0,0 @@ -{ - "positionX": "right", - "positionY": "top", - "layer": "overlay", - "layer-shell": "true", - "cssPriority": "application", - "control-center-margin-top": 10, - "control-center-margin-bottom": 10, - "control-center-margin-right": 10, - "control-center-margin-left": 10, - "notification-icon-size": 64, - "notification-body-image-height": 128, - "notification-body-image-width": 200, - "timeout": 10, - "timeout-low": 5, - "timeout-critical": 0, - "fit-to-screen": true, - "control-center-width": 400, - "control-center-height": 650, - "notification-window-width": 350, - "keyboard-shortcuts": true, - "image-visibility": "when-available", - "transition-time": 200, - "hide-on-clear": false, - "hide-on-action": true, - "script-fail-notify": true, - "widgets": [ - "title", - "menubar#desktop", - "volume", - "backlight#mobile", - "mpris", - "dnd", - "notifications" - ], - "widget-config": { - "title": { - "text": "Notifications", - "clear-all-button": true, - "button-text": " Clear All " - }, - "menubar#desktop": { - "menu#powermode-buttons": { - "label": " 󰌪 ", - "position": "left", - "actions": [ - { - "label": "Performance", - "command": "powerprofilesctl set performance" - }, - { - "label": "Balanced", - "command": "powerprofilesctl set balanced" - }, - { - "label": "Power-saver", - "command": "powerprofilesctl set power-saver" - } - ] - }, - "menu#screenshot": { - "label": "  ", - "position": "left", - "actions": [ - { - "label": "󰹑 Whole screen", - "command": "grimblast --notify --cursor --freeze copy output" - }, - { - "label": "󰩭 Window / Region", - "command": "grimblast --notify --cursor --freeze copy area" - } - ] - }, - "menu#record": { - "label": " 󰕧 ", - "position": "left", - "actions": [ - { - "label": " Record screen", - "command": "record screen & ; swaync-client -t" - }, - { - "label": " Record selection", - "command": "record area & ; swaync-client -t" - }, - { - "label": " Record GIF", - "command": "record gif & ; swaync-client -t" - }, - { - "label": "󰻃 Stop", - "command": "record stop" - } - ] - }, - "menu#power-buttons": { - "label": "  ", - "position": "left", - "actions": [ - { - "label": " Lock", - "command": "swaylock" - }, - { - "label": " Reboot", - "command": "systemctl reboot" - }, - { - "label": " Shut down", - "command": "systemctl poweroff" - } - ] - } - }, - "backlight#mobile": { - "label": " 󰃠 ", - "device": "panel" - }, - "volume": { - "label": "", - "expand-button-label": "", - "collapse-button-label": "", - "show-per-app": true, - "show-per-app-icon": true, - "show-per-app-label": false - }, - "dnd": { - "text": " Do Not Disturb" - }, - "mpris": { - "image-size": 85, - "image-radius": 5 - } - } -} diff --git a/modules/home/environment/swaync/default.nix b/modules/home/environment/swaync/default.nix deleted file mode 100644 index f6d0884..0000000 --- a/modules/home/environment/swaync/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - home.packages = with pkgs; [swaynotificationcenter]; - xdg.configFile."swaync/style.css".source = ./style.css; - xdg.configFile."swaync/config.json".source = ./config.json; -} diff --git a/modules/home/environment/swaync/style.css b/modules/home/environment/swaync/style.css deleted file mode 100644 index a31f30c..0000000 --- a/modules/home/environment/swaync/style.css +++ /dev/null @@ -1,601 +0,0 @@ - -@define-color shadow rgba(0, 0, 0, 0.25); -/* -* -* Catppuccin Mocha palette -* Maintainer: rubyowo -* -*/ - -@define-color base #1E1D2E; -@define-color mantle #181825; -@define-color crust #11111b; - -@define-color text #cdd6f4; -@define-color subtext0 #a6adc8; -@define-color subtext1 #bac2de; - -@define-color surface0 #313244; -@define-color surface1 #45475a; -@define-color surface2 #585b70; - -@define-color overlay0 #6c7086; -@define-color overlay1 #7f849c; -@define-color overlay2 #9399b2; - -@define-color blue #89b4fa; -@define-color lavender #b4befe; -@define-color sapphire #74c7ec; -@define-color sky #89dceb; -@define-color teal #94e2d5; -@define-color green #a6e3a1; -@define-color yellow #f9e2af; -@define-color peach #fab387; -@define-color maroon #eba0ac; -@define-color red #f38ba8; -@define-color mauve #cba6f7; -@define-color pink #f5c2e7; -@define-color flamingo #f2cdcd; -@define-color rosewater #f5e0dc; - -* { - font-family: "NotoSansMono Nerd Font"; - background-clip: border-box; -} - -/* #notifications_box { */ -/* border: solid 4px red; */ -/* } */ - -label { - color: @text; -} - -.notification { - border: @lavender; - box-shadow: none; - /* margin: 0px; */ - /* margin: -15px -10px -15px -10px; */ - border-radius: 4px; - background: inherit; - /* background: @theme_bg_color; */ - /* background: shade(alpha(@borders, 2.55), 0.25); */ -} - -.notification button { - background: transparent; - border-radius: 0px; - border: none; - margin: 0px; - padding: 0px; -} - -.notification button:hover { - background: @surface0; - /* background: @insensitive_bg_color; */ -} - - -.notification-content { - min-height: 64px; - margin: 10px; - padding: 0px; - border-radius: 0px; -} - -.close-button { - background: @crust; - color: @surface2; -} - -.notification-default-action, -.notification-action { - background: transparent; - border: none; -} - - -.notification-default-action { - border-radius: 4px; -} - -/* When alternative actions are visible */ -.notification-default-action:not(:only-child) { - border-bottom-left-radius: 0px; - border-bottom-right-radius: 0px; -} - -.notification-action { - border-radius: 0px; - padding: 2px; - color: @text; - /* color: @theme_text_color; */ -} - -/* add bottom border radius to eliminate clipping */ -.notification-action:first-child { - border-bottom-left-radius: 4px; -} - -.notification-action:last-child { - border-bottom-right-radius: 4px; -} - -/*** Notification ***/ -/* Notification header */ -.summary { - color: @text; - /* color: @theme_text_color; */ - font-size: 16px; - padding: 0px; -} - -.time { - color: @subtext0; - /* color: alpha(@theme_text_color, 0.9); */ - font-size: 12px; - text-shadow: none; - margin: 0px 0px 0px 0px; - padding: 2px 0px; -} - -.body { - font-size: 14px; - font-weight: 500; - color: @subtext1; - /* color: alpha(@text, 0.9); */ - /* color: alpha(@theme_text_color, 0.9); */ - text-shadow: none; - margin: 0px 0px 0px 0px; -} - -.body-image { - border-radius: 4px; -} - -/* The "Notifications" and "Do Not Disturb" text widget */ -.top-action-title { - color: @text; - /* color: @theme_text_color; */ - text-shadow: none; -} - -/* Control center */ - -.control-center { - /* background: transparent; */ - background: @crust; - /* background: @theme_bg_color; */ - /* border: 1px solid @surface0; */ - border-radius: 5px; - /* box-shadow: 0px 0px 2px black; */ -} - -/* .right.overlay-indicator { */ -/* border: solid 5px red; */ -/* } */ - -.control-center-list { - /* background: @base; */ - background: @crust; - min-height: 5px; - /* border: 1px solid @surface1; */ - border-top: none; - border-radius: 0px 0px 4px 4px; -} - -.control-center-list-placeholder, -.notification-group-icon, -.notification-group { - /* opacity: 1.0; */ - /* opacity: 0; */ - color: alpha(@theme_text_color, 0.50); -} - -.notification-group { - /* unset the annoying focus thingie */ - all: unset; - border: none; - opacity: 0; - padding: 0px; - box-shadow: none; - /* selectable: no; */ -} -.notification-group > box { - all: unset; - background: @mantle; - /* background: alpha(currentColor, 0.072); */ - padding: 8px; - margin: 0px; - /* margin: 0px -5px; */ - border: none; - border-radius: 4px; - box-shadow: none; -} - - -.notification-row { - outline: none; - transition: all 1s ease; - background: @base; - /* background: @theme_bg_color; */ - border: 1px solid @crust; - margin: 10px 5px 0px 5px; - border-radius: 4px; - /* box-shadow: 0px 0px 4px black; */ - /* background: alpha(currentColor, 0.05); */ -} - -.notification-row:focus, -.notification-row:hover { - box-shadow: none; -} - -.control-center-list > row, -.control-center-list > row:focus, -.control-center-list > row:hover { - background: transparent; - border: none; - margin: 0px; - padding: 5px 10px 5px 10px; - box-shadow: none; -} - -.control-center-list > row:last-child { - padding: 5px 10px 10px 10px; -} - - -/* Window behind control center and on all other monitors */ -.blank-window { - background: transparent; -} - -/*** Widgets ***/ - -/* Title widget */ -.widget-title { - margin: 0px; - background: inherit; - /* background: @theme_bg_color; */ - border-radius: 4px 4px 0px 0px; - /* border: 1px solid @surface1; */ - border-bottom: none; - padding-bottom: 20px; -} - -.widget-title > label { - margin: 18px 10px; - font-size: 20px; - font-weight: 500; -} - -.widget-title > button { - font-weight: 700; - padding: 7px 3px; - margin-right: 10px; - background: @mantle; - color: @text; - /* color: @theme_text_color; */ - /* border: none; */ - border-radius: 4px; -} -.widget-title > button:hover { - background: @base; - /* background: alpha(currentColor, 0.1); */ -} - -/* Label widget */ -.widget-label { - margin: 0px; - padding: 0px; - min-height: 5px; - background: @mantle; - /* background: @theme_bg_color; */ - border-radius: 0px 0px 4px 4px; - /* border: 1px solid @surface1; */ - border-top: none; -} -.widget-label > label { - font-size: 0px; - font-weight: 400; -} - -/* Menubar */ -.widget-menubar { - background: inherit; - /* background: @theme_bg_color; */ - /* border: 1px solid @surface1; */ - border-top: none; - border-bottom: none; -} -.widget-menubar > box > box { - margin: 5px 10px 5px 10px; - min-height: 40px; - border-radius: 4px; - background: transparent; -} -.widget-menubar > box > box > button { - background: @mantle; - /* background: alpha(currentColor, 0.05); */ - min-width: 85px; - min-height: 50px; - margin-right: 13px; - font-size: 17px; - padding: 0px; -} -.widget-menubar > box > box > button:nth-child(4) { - margin-right: 0px; -} -.widget-menubar button:focus { - box-shadow: none; -} -.widget-menubar button:focus:hover { - background: @base; - /* background: alpha(currentColor,0.1); */ - box-shadow: none; -} - -.widget-menubar > box > revealer > box { - margin: 5px 10px 5px 10px; - background: @mantle; - /* background: alpha(currentColor, 0.05); */ - border-radius: 4px; -} -.widget-menubar > box > revealer > box > button { - background: transparent; - min-height: 50px; - padding: 0px; - margin: 5px; -} - -/* Buttons grid */ -.widget-buttons-grid { - /* background-color: @theme_bg_color; */ - background-color: @mantle; - /* border: 1px solid @surface1; */ - border-top: none; - border-bottom: none; - font-size: 14px; - font-weight: 500; - margin: 0px; - padding: 5px; - border-radius: 0px; -} - -.widget-buttons-grid > flowbox > flowboxchild { - background: @mantle; - /* background: alpha(currentColor, 0.05); */ - border-radius: 4px; - min-height: 50px; - min-width: 85px; - margin: 5px; - padding: 0px; -} - -.widget-buttons-grid > flowbox > flowboxchild > button { - background: transparent; - border-radius: 4px; - margin: 0px; - border: none; - box-shadow: none; -} - - -.widget-buttons-grid > flowbox > flowboxchild > button:hover { - background: @mantle; - /* background: alpha(currentColor, 0.1); */ -} - -/* Mpris widget */ -.widget-mpris { - padding: 10px; - padding-bottom: 35px; - padding-top: 35px; - margin-bottom: -33px; -} -.widget-mpris > box { - padding: 0px; - margin: -5px 0px -10px 0px; - padding: 0px; - border-radius: 4px; - /* background: alpha(currentColor, 0.05); */ - background: @mantle; -} -.widget-mpris > box > button:nth-child(1), -.widget-mpris > box > button:nth-child(3) { - margin-bottom: 0px; -} -.widget-mpris > box > button:nth-child(1) { - margin-left: -25px; - margin-right: -25px; - opacity: 0; -} -.widget-mpris > box > button:nth-child(3) { - margin-left: -25px; - margin-right: -25px; - opacity: 0; -} - -.widget-mpris-album-art { - all: unset; -} - -/* Player button box */ -.widget-mpris > box > carousel > widget > box > box:nth-child(2) { - margin: 5px 0px -5px 90px; -} - -/* Player buttons */ -.widget-mpris > box > carousel > widget > box > box:nth-child(2) > button { - border-radius: 4px; -} -.widget-mpris > box > carousel > widget > box > box:nth-child(2) > button:hover { - background: alpha(currentColor, 0.1); -} -carouselindicatordots { - opacity: 0; -} - -.widget-mpris-title { - color: #eeeeee; - font-weight: bold; - font-size: 1.25rem; - text-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); -} -.widget-mpris-subtitle { - color: #eeeeee; - font-size: 1rem; - text-shadow: 0px 0px 3px rgba(0, 0, 0, 1); -} - -.widget-mpris-player { - border-radius: 0px; - margin: 0px; -} -.widget-mpris-player > box > image { - margin: 0px 0px -48px 0px; -} - -.notification-group > box.vertical { - /* border: solid 5px red; */ - margin-top: 3px -} - -/* Backlight and volume widgets */ -.widget-backlight, -.widget-volume { - background-color: @crust; - /* background-color: @theme_bg_color; */ - /* border: 1px solid @surface1; */ - border-top: none; - border-bottom: none; font-size: 13px; - font-weight: 600; - border-radius: 0px; - margin: 0px; - padding: 0px; -} -.widget-volume > box { - background: @mantle; - /* background: alpha(currentColor, 0.05); */ - border-radius: 4px; - margin: 5px 10px 5px 10px; - min-height: 50px; -} -.widget-volume > box > label { - min-width: 50px; - padding: 0px; -} -.widget-volume > box > button { - min-width: 50px; - box-shadow: none; - padding: 0px; -} -.widget-volume > box > button:hover { - /* background: alpha(currentColor, 0.05); */ - background: @surface0; -} -.widget-volume > revealer > list { - background: @mantle; - /* background: alpha(currentColor, 0.05); */ - border-radius: 4px; - margin-top: 5px; - padding: 0px; -} -.widget-volume > revealer > list > row { - padding-left: 10px; - min-height: 40px; - background: transparent; -} -.widget-volume > revealer > list > row:hover { - background: transparent; - box-shadow: none; - border-radius: 4px; -} -.widget-backlight > scale { - background: @mantle; - /* background: alpha(currentColor, 0.05); */ - border-radius: 0px 4px 4px 0px; - margin: 5px 10px 5px 0px; - padding: 0px 10px 0px 0px; - min-height: 50px; -} -.widget-backlight > label { - background: @surface0; - /* background: alpha(currentColor, 0.05); */ - margin: 5px 0px 5px 10px; - border-radius: 4px 0px 0px 4px; - padding: 0px; - min-height: 50px; - min-width: 50px; -} - -/* DND widget */ -.widget-dnd { - margin: 8px; - font-size: 1.1rem; - padding-top: 20px; -} - -.widget-dnd>switch { - font-size: initial; - border-radius: 12px; - background: @surface0; - border: 1px solid @lavender; - box-shadow: none; -} - -.widget-dnd>switch:checked { - background: @surface2; -} - -.widget-dnd>switch slider { - background: @lavender; - border-radius: 12px; -} - -/* Toggles */ -.toggle:checked { - background: @surface1; - /* background: @theme_selected_bg_color; */ -} -/*.toggle:not(:checked) { - color: rgba(128, 128, 128, 0.5); -}*/ -.toggle:checked:hover { - background: @surface2; - /* background: alpha(@theme_selected_bg_color, 0.75); */ -} - -/* Sliders */ -scale { - padding: 0px; - margin: 0px 10px 0px 10px; -} - -scale trough { - border-radius: 4px; - background: @surface0; - /* background: alpha(currentColor, 0.1); */ -} - -scale highlight { - border-radius: 5px; - min-height: 10px; - margin-right: -5px; -} - -scale slider { - margin: -10px; - min-width: 10px; - min-height: 10px; - background: transparent; - box-shadow: none; - padding: 0px; -} -scale slider:hover { -} - -.right.overlay-indicator { - all: unset; -}