diff --git a/common/flake.nix b/common/flake.nix index 05bf7ab..1b299be 100644 --- a/common/flake.nix +++ b/common/flake.nix @@ -3,6 +3,7 @@ # NOTE if you add/change any inputs here also add them in the TOP level repo's flake.nix home-manager.url = "github:rycee/home-manager/release-25.05"; ragenix.url = "github:yaxitech/ragenix"; + nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=latest"; hyprland.url = "github:hyprwm/Hyprland"; }; @@ -27,6 +28,7 @@ imports = [ home-manager.nixosModules.default ragenix.nixosModules.age + nix-flatpak.nixosModules.nix-flatpak hyprland.nixosModules.default ./_home_manager ./options.nix diff --git a/common/programs/default.nix b/common/programs/default.nix index 82c2679..c56a1ab 100644 --- a/common/programs/default.nix +++ b/common/programs/default.nix @@ -13,6 +13,7 @@ in ./docker.nix ./podman.nix ./incus.nix + ./flatpaks.nix ./virt-manager.nix ]; config = { diff --git a/common/programs/flatpaks.nix b/common/programs/flatpaks.nix new file mode 100644 index 0000000..307fff2 --- /dev/null +++ b/common/programs/flatpaks.nix @@ -0,0 +1,66 @@ +{ + config, + lib, + ... +}: +let + ccfg = import ../config.nix; + cfg_path = [ + ccfg.custom_config_key + "programs" + "flatpaks" + ]; + cfg = lib.attrsets.getAttrFromPath cfg_path config; +in +{ + options = + { } + // lib.attrsets.setAttrByPath cfg_path { + enable = lib.mkEnableOption "flatpaks"; + packages = lib.mkOption { + type = lib.types.listOf lib.types.str; + default = [ ]; + description = "List of Flatpak package names to install."; + }; + }; + + config = lib.mkIf cfg.enable { + services.flatpak = { + enable = true; + packages = cfg.packages; + overrides = { + global = { + Context.sockets = [ + "wayland" + "x11" + ]; + Context.devices = [ "dri" ]; # allow GPU access if desired + Environment = { + XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons"; + GTK_THEME = "Adwaita:dark"; + # Force wayland as much as possible. + ELECTRON_OZONE_PLATFORM_HINT = "auto"; # or 'auto' + GTK_USE_PORTAL = "1"; + OZONE_PLATFORM = "wayland"; + QT_QPA_PLATFORM = "xcb"; # force XCB for Flatpaks (XWayland) + }; + }; + "org.signal.Signal" = { + Environment = { + SIGNAL_PASSWORD_STORE = "gnome-libsecret"; + }; + Context = { + sockets = [ + "xfg-settings" + ]; + }; + }; + "com.google.Chrome" = { + Environment = { + CHROME_EXTRA_ARGS = "--enable-features=WaylandWindowDecorations --ozone-platform-hint=auto"; + }; + }; + }; + }; + }; +} diff --git a/flakes/common/flake.nix b/flakes/common/flake.nix deleted file mode 100644 index bed3399..0000000 --- a/flakes/common/flake.nix +++ /dev/null @@ -1,16 +0,0 @@ -let - utils = import ./utils.nix; -in -with utils; -{ - description = "Common NixOS configuration modules and Home Manager modules that require not other inputs beyond nixpkgs or home-manager itself. This is made by me for me and not designed to be general purpose for anyone else, but could be useful nontheless."; - inputs = { }; - outputs = - { - ... - }: - { - nixosModules = importAll ./nix_modules; - homeManagerModules = importAll ./hm_modules; - }; -} diff --git a/flakes/common/hm_modules/alacritty.nix b/flakes/common/hm_modules/alacritty.nix deleted file mode 100644 index 0794c15..0000000 --- a/flakes/common/hm_modules/alacritty.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ ... }: -{ - programs.alacritty = { - enable = true; - settings = { - window = { - decorations = "None"; - dynamic_title = false; - }; - colors = { - primary = { - foreground = "#e0e0e0"; - background = "#262626"; - }; - normal = { - # Catppuccin Coal - black = "#1f1f1f"; - red = "#f38ba8"; - green = "#a6e3a1"; - yellow = "#f9e2af"; - blue = "#89b4fa"; - magenta = "#cba6f7"; - cyan = "#89dceb"; - white = "#e0e0e0"; - }; - }; - font = { - normal = { family = "JetBrainsMonoNL Nerd Font"; style = "Regular"; }; - size = 12.0; - }; - }; - }; -} - diff --git a/flakes/common/hm_modules/atuin.nix b/flakes/common/hm_modules/atuin.nix deleted file mode 100644 index 021745f..0000000 --- a/flakes/common/hm_modules/atuin.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ ... }: -# TODO setup auto secret/login for sync -{ - programs.atuin = { - enable = true; - enableZshIntegration = true; # TODO make dynamic? - flags = [ "--disable-up-arrow" ]; - settings = { - workspaces = true; - exit-mode = "return-query"; - enter_accept = true; - sync_address = "https://atuin.joshuabell.xyz"; - sync = { - records = true; - }; - }; - }; -} diff --git a/flakes/common/hm_modules/de_sway/default.nix b/flakes/common/hm_modules/de_sway/default.nix deleted file mode 100644 index 09539e5..0000000 --- a/flakes/common/hm_modules/de_sway/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{ ... }: -{ - imports = [ - ./theme.nix - ./sway.nix - ./waybar.nix - ./wofi.nix - ./swaync.nix - ./swaylock.nix - ./polkit.nix - ]; -} diff --git a/flakes/common/hm_modules/de_sway/polkit.nix b/flakes/common/hm_modules/de_sway/polkit.nix deleted file mode 100644 index 785abb2..0000000 --- a/flakes/common/hm_modules/de_sway/polkit.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ ... }: -{ - services.polkit-gnome.enable = true; -} diff --git a/flakes/common/hm_modules/de_sway/sway.nix b/flakes/common/hm_modules/de_sway/sway.nix deleted file mode 100644 index 9854d05..0000000 --- a/flakes/common/hm_modules/de_sway/sway.nix +++ /dev/null @@ -1,180 +0,0 @@ -{ - config, - ... -}: - -{ - wayland.windowManager.sway = { - enable = true; - xwayland = true; - - systemd.enable = true; - - config = rec { - modifier = "Mod4"; # SUPER - terminal = "foot"; - menu = "wofi --show drun"; - - # Per-output workspace mapping (user can extend via extraOptions) - # Example (left as defaults): users can add `output HDMI-A-1 workspace 1,3,5` in extraOptions - - input = { - "type:keyboard" = { - xkb_layout = "us"; - xkb_options = "caps:escape"; - }; - "type:touchpad" = { - natural_scroll = "enabled"; - tap = "enabled"; - dwt = "enabled"; - }; - # Disable focus follows mouse to avoid accidental focus changes - # In Sway this behavior is controlled by focus_follows_mouse - }; - - focus = { - followMouse = "no"; - # onWindowActivation = "urgent"; # don't steal focus; mark urgent instead - }; - - gaps = { - inner = 2; - outer = 5; - smartGaps = false; - smartBorders = "on"; - }; - - colors = { - focused = { - background = "#444444"; - border = "#555555"; - childBorder = "#444444"; - indicator = "#595959"; - text = "#f1f1f1"; - }; - unfocused = { - background = "#222222"; - border = "#333333"; - childBorder = "#222222"; - indicator = "#292d2e"; - text = "#888888"; - }; - }; - - window = { - border = 1; - titlebar = false; - commands = [ - # Bitwarden chrome popup as floating example from Hyprland rules - { - criteria = { - app_id = "chrome-nngceckbapebfimnlniiiahkandclblb-Default"; - }; - command = "floating enable"; - } - { - criteria = { - app_id = "pavucontrol"; - }; - command = "floating enable, move position center, resize set 620 1200"; - } - { - criteria = { - class = "Google-chrome"; - window_role = "pop-up"; - }; - command = "floating enable, move position center, resize set 720 480"; - } - { - criteria = { - window_role = "pop-up"; - }; - command = "floating enable, move position center, resize set 640 420"; - } - { - criteria = { - window_role = "About"; - }; - command = "floating enable, move position center, resize set 640 420"; - } - ]; - }; - - # Keybindings mirroring Hyprland - keybindings = { - # Apps - "${modifier}+return" = "exec ${config.wayland.winfowManager.sway.config.terminal}"; - "${modifier}+space" = "exec pkill wofi || wofi --show drun"; - "${modifier}+q" = "kill"; - "${modifier}+shift+Escape" = "exit"; - "${modifier}+shift+q" = "exec swaylock"; - "${modifier}+f" = "floating toggle"; - - # Focus - "${modifier}+h" = "focus left"; - "${modifier}+l" = "focus right"; - "${modifier}+k" = "focus up"; - "${modifier}+j" = "focus down"; - - # Workspaces (numbers and vim-like mirror) - "${modifier}+1" = "workspace number 1"; - "${modifier}+n" = "workspace number 1"; - "${modifier}+2" = "workspace number 2"; - "${modifier}+m" = "workspace number 2"; - "${modifier}+3" = "workspace number 3"; - "${modifier}+comma" = "workspace number 3"; - "${modifier}+4" = "workspace number 4"; - "${modifier}+period" = "workspace number 4"; - "${modifier}+5" = "workspace number 5"; - "${modifier}+slash" = "workspace number 5"; - "${modifier}+6" = "workspace number 6"; - "${modifier}+7" = "workspace number 7"; - "${modifier}+8" = "workspace number 8"; - "${modifier}+9" = "workspace number 9"; - "${modifier}+0" = "workspace number 10"; - - # Move windows - "${modifier}+shift+h" = "move left"; - "${modifier}+shift+l" = "move right"; - "${modifier}+shift+k" = "move up"; - "${modifier}+shift+j" = "move down"; - "${modifier}+shift+1" = "move container to workspace number 1"; - "${modifier}+shift+n" = "move container to workspace number 1"; - "${modifier}+shift+2" = "move container to workspace number 2"; - "${modifier}+shift+m" = "move container to workspace number 2"; - "${modifier}+shift+3" = "move container to workspace number 3"; - "${modifier}+shift+comma" = "move container to workspace number 3"; - "${modifier}+shift+4" = "move container to workspace number 4"; - "${modifier}+shift+period" = "move container to workspace number 4"; - "${modifier}+shift+5" = "move container to workspace number 5"; - "${modifier}+shift+slash" = "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"; - "${modifier}+shift+0" = "move container to workspace number 10"; - - "${modifier}+left" = "resize shrink width 10 px or 10 ppt"; - "${modifier}+down" = "resize shrink height 10 px or 10 ppt"; - "${modifier}+up" = "resize grow height 10 px or 10 ppt"; - "${modifier}+right" = "resize grow width 10 px or 10 ppt"; - - # Mouse bindings (Mod + drag) - "${modifier}+button1" = "move"; - "${modifier}+button3" = "resize"; - - # Screenshot - "Print" = "exec grim -g \"$(slurp)\" - | wl-copy"; - }; - - bars = [ ]; # Use Waybar via Home Manager - startup = [ - { - command = "exec sh -c 'sleep 0.01; swaymsg workspace number 7 ; sleep 0.01; swaymsg workspace number 1'"; - } - # Waybar is managed by Home Manager systemd unit - # { command = "pgrep waybar >/dev/null || waybar"; } - ]; - }; - }; -} diff --git a/flakes/common/hm_modules/de_sway/swaylock.nix b/flakes/common/hm_modules/de_sway/swaylock.nix deleted file mode 100644 index 86243aa..0000000 --- a/flakes/common/hm_modules/de_sway/swaylock.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ ... }: -{ - programs.swaylock = { - enable = true; - settings = { - color = "#000000"; - indicator-caps-lock = true; - indicator-idle-visible = true; - indicator-radius = 100; - indicator-thickness = 10; - font = "JetBrainsMono Nerd Font Regular"; - font-size = 20; - }; - }; -} diff --git a/flakes/common/hm_modules/de_sway/swaync.nix b/flakes/common/hm_modules/de_sway/swaync.nix deleted file mode 100644 index a60df5d..0000000 --- a/flakes/common/hm_modules/de_sway/swaync.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ ... }: -{ - services.swaync = { - enable = true; - settings = { - ignore = [ "com.spotify.Client" ]; - positionX = "right"; - positionY = "top"; - layer = "overlay"; - control-center-layer = "top"; - layer-shell = true; - cssPriority = "application"; - control-center-margin-top = 0; - control-center-margin-bottom = 0; - control-center-margin-right = 0; - control-center-margin-left = 0; - notification-2fa-action = true; - notification-inline-replies = false; - notification-icon-size = 64; - notification-body-image-height = 100; - notification-body-image-width = 200; - timeout = 10; - timeout-low = 5; - timeout-critical = 0; - control-center-width = 500; - control-center-height = 600; - notification-window-width = 500; - keyboard-shortcuts = true; - image-visibility = "when-available"; - transition-time = 200; - hide-on-clear = false; - hide-on-action = true; - script-fail-notify = true; - widgets = [ - "inhibitors" - "title" - "dnd" - "volume" - "backlight" - "mpris" - "buttons-grid#quick" - "notifications" - ]; - widget-config = { - inhibitors = { - text = "Inhibitors"; - button-text = "Clear All"; - clear-all-button = true; - }; - title = { - text = "Notifications"; - clear-all-button = true; - button-text = "Clear All"; - }; - dnd.text = "Do Not Disturb"; - mpris = { - image-size = 96; - image-radius = 12; - }; - volume = { - label = "󰕾"; - show-per-app = true; - }; - backlight = { - label = "󰃟"; - device = "intel_backlight"; - }; - # "buttons-grid#quick" = { - # columns = 4; - # icon-size = 20; - # actions = [ - # { label = "󰐥"; tooltip = "Shutdown"; command = "confirm-action 'systemctl poweroff' 'Shutdown?'"; } - # { label = "󰜉"; tooltip = "Reboot"; command = "confirm-action 'systemctl reboot' 'Reboot?'"; } - # { label = "󰍃"; tooltip = "Logout"; command = "confirm-action 'swaymsg exit' 'Logout?'"; } - # ]; - # }; - }; - }; - style = '' - .control-center { background: #1a1b26; border: 2px solid #7dcae4; border-radius: 12px; } - .control-center-list { background: transparent; } - .control-center .notification-row:focus, .control-center .notification-row:hover { opacity: 1; background: #24283b; } - .notification { border-radius: 8px; margin: 6px 12px; box-shadow: 0 0 0 1px rgba(125,196,228,.3), 0 1px 3px 1px rgba(0,0,0,.7), 0 2px 6px 2px rgba(0,0,0,.3); padding: 0; } - .widget-title { margin: 8px; font-size: 1.5rem; color: #c0caf5; } - .widget-dnd { margin: 8px; font-size: 1.1rem; color: #c0caf5; } - .widget-dnd > switch { font-size: initial; border-radius: 8px; background: #414868; border: 1px solid #7dcae4; } - .widget-dnd > switch:checked { background: #7dcae4; } - .widget-mpris { color: #c0caf5; background: #24283b; padding: 8px; margin: 8px; border-radius: 8px; } - .widget-mpris-player { padding: 8px; margin: 8px; } - .widget-mpris-title { font-weight: bold; font-size: 1.25rem; } - .widget-mpris-subtitle { font-size: 1.1rem; color: #9ece6a; } - .widget-volume, .widget-backlight, .widget-menubar { background: #24283b; padding: 8px; margin: 8px; border-radius: 8px; color: #c0caf5; } - .widget-menubar .menu-item button { background: #1f2335; color: #c0caf5; border-radius: 8px; padding: 6px 10px; margin: 4px; border: 1px solid #2e3440; font-family: "JetBrainsMonoNL Nerd Font"; } - .widget-menubar .menu-item button:hover { background: #414868; border-color: #7dcae4; } - .topbar-buttons button { border: none; background: transparent; color: #c0caf5; font-size: 1.1rem; border-radius: 8px; margin: 0 4px; padding: 8px; } - .topbar-buttons button:hover { background: #414868; } - .topbar-buttons button:active { background: #7dcae4; color: #1a1b26; } - ''; - }; -} diff --git a/flakes/common/hm_modules/de_sway/theme.nix b/flakes/common/hm_modules/de_sway/theme.nix deleted file mode 100644 index 5a3fbf7..0000000 --- a/flakes/common/hm_modules/de_sway/theme.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ pkgs, ... }: -{ - home.pointerCursor = { - gtk.enable = true; - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; - size = 16; - }; - gtk = { - enable = true; - theme = { package = pkgs.flat-remix-gtk; name = "Flat-Remix-GTK-Grey-Darkest"; }; - iconTheme = { package = pkgs.adwaita-icon-theme; name = "Adwaita"; }; - font = { name = "Sans"; size = 11; }; - }; -} diff --git a/flakes/common/hm_modules/de_sway/waybar.nix b/flakes/common/hm_modules/de_sway/waybar.nix deleted file mode 100644 index cf2afff..0000000 --- a/flakes/common/hm_modules/de_sway/waybar.nix +++ /dev/null @@ -1,246 +0,0 @@ -{ ... }: -{ - programs.waybar = { - enable = true; - systemd.enable = true; - settings = { - mainBar = { - layer = "top"; - position = "top"; - height = 28; - spacing = 6; - margin-top = 0; - margin-bottom = 0; - margin-left = 10; - margin-right = 10; - - modules-left = [ - "sway/workspaces" - ]; - modules-center = [ - "clock" - "temperature" - "cpu" - "memory" - "disk" - ]; - modules-right = [ - "battery" - "battery#bat2" - "pulseaudio" - "network" - "bluetooth" - "power-profiles-daemon" - "backlight" - "custom/notifications" - "sway/language" - "tray" - "custom/power" - ]; - - "sway/workspaces" = { - format = "{icon}"; - format-icons = { - "1" = "一"; - "2" = "二"; - "3" = "三"; - "4" = "四"; - "5" = "五"; - "6" = "六"; - "7" = "七"; - "8" = "八"; - "9" = "九"; - "10" = "十"; - "11" = "十一"; - "12" = "十二"; - "13" = "十三"; - "14" = "十四"; - "15" = "十五"; - "16" = "十六"; - "17" = "十七"; - "18" = "十八"; - "19" = "十九"; - "20" = "二十"; - }; - disable-scroll = false; - }; - - # CENTER - clock = { - format = "{:%b %d, %H:%M}"; - tooltip-format = "{:%Y %B}\n{calendar}"; - }; - - temperature = { - thermal-zone = 2; - hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input"; - critical-threshold = 80; - format-critical = "󰔏 {temperatureC}°C"; - format = "󰔏 {temperatureC}°C"; - }; - - cpu = { - format = "󰻠 {usage}%"; - tooltip = true; - on-click = "btop"; - }; - - memory = { - format = "󰍛 {}%"; - on-click = "btop"; - }; - - disk = { - interval = 30; - format = "󰋊 {percentage_used}%"; - path = "/"; - on-click = "btop"; - }; - - # RIGHT - "battery" = { - "states" = { - # "good"= 95; - "warning" = 30; - "critical" = 15; - }; - "format" = "{capacity}% {icon}"; - "format-full" = "{capacity}% {icon}"; - "format-charging" = "{capacity}% "; - "format-plugged" = "{capacity}% "; - "format-alt" = "{time} {icon}"; - # "format-good"= ""; // An empty format will hide the module - # "format-full"= ""; - "format-icons" = [ - "" - "" - "" - "" - "" - ]; - }; - "battery#bat2" = { - "bat" = "BAT2"; - }; - - pulseaudio = { - format = "{icon} {volume}%"; - format-bluetooth = "󰂰 {volume}%"; - format-bluetooth-muted = "󰂲 "; - format-muted = "󰖁 "; - format-source = "󰍬 {volume}%"; - format-source-muted = "󰍭 "; - format-icons = { - headphone = "󰋋"; - hands-free = "󰂑"; - headset = "󰂑"; - phone = "󰏲"; - portable = "󰦧"; - car = "󰄋"; - default = [ - "󰕿" - "󰖀" - "󰕾" - ]; - }; - scroll-step = 5; - on-click = "pavucontrol"; - on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; - }; - - network = { - format-wifi = "󰤨 {essid} ({signalStrength}%)"; - format-ethernet = "󰈀 {ipaddr}/{cidr}"; - tooltip-format = "{ifname} via {gwaddr} "; - format-linked = "󰈀 {ifname} (No IP)"; - format-disconnected = "󰖪 Disconnected"; - # on-click = "wofi-wifi-menu"; - # on-click-right = "nmcli radio wifi toggle"; - }; - - bluetooth = { - format = "󰂯 {status}"; - format-connected = "󰂱 {device_alias}"; - format-connected-battery = "󰂱 {device_alias} {device_battery_percentage}%"; - tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; - tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; - tooltip-format-enumerate-connected = "{device_alias}\t{device_address}"; - tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%"; - # on-click = "wofi-bluetooth-menu"; - # on-click-right = "bluetoothctl power toggle"; - }; - - "power-profiles-daemon" = { - format = "{icon}"; - "tooltip-format" = "Power profile: {profile}\nDriver: {driver}"; - tooltip = true; - "format-icons" = { - default = ""; - performance = ""; - balanced = ""; - "power-saver" = ""; - }; - }; - - backlight = { - format = "{percent}% {icon}"; - "format-icons" = [ - "" - "" - "" - "" - "" - "" - "" - "" - "" - ]; - }; - - "custom/notifications" = { - format = "{icon} {}"; - format-icons = { - notification = ""; - none = ""; - dnd-notification = "󰂛"; - dnd-none = "󰂛"; - inhibited-notification = ""; - inhibited-none = ""; - dnd-inhibited-notification = "󰂛"; - dnd-inhibited-none = "󰂛"; - }; - return-type = "json"; - exec-if = "which swaync-client"; - exec = "swaync-client -swb"; - on-click = "swaync-client -t -sw"; - on-click-right = "swaync-client -d -sw"; - escape = true; - tooltip = false; - }; - - "sway/language" = { - format = "{}"; - }; - - "tray" = { - "spacing" = 10; - }; - - "custom/power" = { - format = "⏻ "; - tooltip = false; - menu = "on-click"; - "menu-file" = ./waybar/power_menu.xml; - "menu-actions" = { - shutdown = "shutdown 0"; - reboot = "reboot"; - logout = "loginctl terminate-session $(loginctl list-sessions | grep seat0 | awk '{print $1}')"; - }; - }; - - }; - }; - - style = builtins.readFile ./waybar/waybar.css; - }; -} diff --git a/flakes/common/hm_modules/de_sway/waybar/power_menu.xml b/flakes/common/hm_modules/de_sway/waybar/power_menu.xml deleted file mode 100644 index a061b18..0000000 --- a/flakes/common/hm_modules/de_sway/waybar/power_menu.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Logout - - - - - - - - Reboot - - - - - - - - Shutdown - - - - diff --git a/flakes/common/hm_modules/de_sway/waybar/waybar.css b/flakes/common/hm_modules/de_sway/waybar/waybar.css deleted file mode 100644 index efeba06..0000000 --- a/flakes/common/hm_modules/de_sway/waybar/waybar.css +++ /dev/null @@ -1,101 +0,0 @@ -* { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: "JetBrainsMonoNL Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif; - font-size: 14px; - border: none; - border-radius: 0; - min-height: 0; - color: #f1f1f1; -} - -window#waybar { - background: transparent; -} - -#workspaces button.focused { - background-color: rgba(220, 220, 220, 0.2); -} - -#workspaces button.urgent { - background-color: rgba(214, 82, 82, 0.3); -} - -button, -#clock, -#battery, -#cpu, -#memory, -#disk, -#temperature, -#backlight, -#network, -#pulseaudio, -#wireplumber, -#custom-media, -#custom-notifications, -#custom-power, -#tray, -#mode, -#idle_inhibitor, -#scratchpad, -#power-profiles-daemon, -#bluetooth, -#language, -#mpd { - padding: 0 5px; - color: #f1f1f1; - background-color: rgba(220, 220, 220, 0.1); - border-radius: 6px; -} - - -button:hover, -#clock:hover, -#battery:hover, -#cpu:hover, -#memory:hover, -#disk:hover, -#temperature:hover, -#backlight:hover, -#network:hover, -#pulseaudio:hover, -#wireplumber:hover, -#custom-media:hover, -#custom-notifications:hover, -#tray:hover, -#mode:hover, -#idle_inhibitor:hover, -#scratchpad:hover, -#power-profiles-daemon:hover, -#bluetooth:hover, -#language:hover, -#mpd:hover { - color: #f1f1f1; - background-color: rgba(220, 220, 220, 0.2); - border-radius: 6px; -} - -#power-profiles-daemon { - padding-right: 15px; -} - -#power-profiles-daemon.performance { - color: #fff7d6; -} - -#power-profiles-daemon.balanced { - color: #d6efff; -} - -#power-profiles-daemon.power-saver { - color:#dcffd6; -} - -#tray>.passive { - -gtk-icon-effect: dim; -} - -#tray>.needs-attention { - -gtk-icon-effect: highlight; - background-color: #eb4d4b; -} diff --git a/flakes/common/hm_modules/de_sway/wofi.nix b/flakes/common/hm_modules/de_sway/wofi.nix deleted file mode 100644 index 8c0ba40..0000000 --- a/flakes/common/hm_modules/de_sway/wofi.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ ... }: -{ - programs.wofi = { - enable = true; - settings = { - width = 500; - height = 600; - location = "bottom"; - show = "drun"; - prompt = "..."; - filter_rate = 100; - allow_markup = true; - no_actions = true; - halign = "fill"; - orientation = "vertical"; - content_halign = "fill"; - insensitive = true; - allow_images = true; - image_size = 40; - gtk_dark = true; - }; - }; -} diff --git a/flakes/common/hm_modules/direnv.nix b/flakes/common/hm_modules/direnv.nix deleted file mode 100644 index b36ce49..0000000 --- a/flakes/common/hm_modules/direnv.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ ... }: -{ - programs.direnv = { - enable = true; - enableZshIntegration = true; - nix-direnv.enable = true; - config = { - nix-direnv = true; - global = { - strict_env = true; - load_dotenv = true; - hide_env_diff = true; - }; - whitelist = { - prefix = [ - "~/projects" - "~/.config" - "~/.local/share/git_worktrees/" - ]; - }; - }; - }; -} diff --git a/flakes/common/hm_modules/foot.nix b/flakes/common/hm_modules/foot.nix deleted file mode 100644 index d52af61..0000000 --- a/flakes/common/hm_modules/foot.nix +++ /dev/null @@ -1,47 +0,0 @@ -{ ... }: -{ - programs.foot = { - enable = true; - - # This renders to ~/.config/foot/foot.ini - settings = { - main = { - # Use the same font and size as your Kitty config - font = "JetBrainsMonoNL Nerd Font:size=12"; - - # Initial window size in character cells (Kitty used 160c x 55c) - "initial-window-size-chars" = "160x55"; - }; - - colors = { - # Background opacity (1.0 = opaque) - alpha = "0.94"; - - # Foreground/background - foreground = "e0e0e0"; - background = "262626"; - - # 16-color palette - # normal (0–7) - regular0 = "1f1f1f"; # black - regular1 = "f38ba8"; # red - regular2 = "a6e3a1"; # green - regular3 = "f9e2af"; # yellow - regular4 = "89b4fa"; # blue - regular5 = "cba6f7"; # magenta - regular6 = "89dceb"; # cyan - regular7 = "e0e0e0"; # white - - # bright (8–15) - bright0 = "565656"; # bright black - bright1 = "f38ba8"; # bright red - bright2 = "a6e3a1"; # bright green - bright3 = "f9e2af"; # bright yellow - bright4 = "89b4fa"; # bright blue - bright5 = "cba6f7"; # bright magenta - bright6 = "89dceb"; # bright cyan - bright7 = "ffffff"; # bright white - }; - }; - }; -} diff --git a/flakes/common/hm_modules/git.nix b/flakes/common/hm_modules/git.nix deleted file mode 100644 index 34e6d18..0000000 --- a/flakes/common/hm_modules/git.nix +++ /dev/null @@ -1,67 +0,0 @@ -{ ... }: -{ - programs.git = { - enable = true; - # TODO make configurable - userEmail = "ringofstorms@gmail.com"; - userName = "RingOfStorms (Joshua Bell)"; - - extraConfig = { - core.pager = "bat"; - core.editor = "nano"; - - pull.rebase = false; - - init.defaultBranch = "main"; - - rerere.enabled = true; - }; - - difftastic = { - enable = true; - background = "dark"; - }; - - ignores = [ - # -------------- - # Intellij - # -------------- - "*.iml" - # -------------- - # MAC OS - # -------------- - ".DS_Store" - ".AppleDouble" - ".LSOverride" - # Icon must end with two \r - "Icon" - # Thumbnails - "._*" - # Files that might appear in the root of a volume - ".DocumentRevisions-V100" - ".fseventsd" - ".Spotlight-V100" - ".TemporaryItems" - ".Trashes" - ".VolumeIcon.icns" - ".com.apple.timemachine.donotpresent" - - # Directories potentially created on remote AFP share - ".AppleDB" - ".AppleDesktop" - "Network Trash Folder" - "Temporary Items" - ".apdisk" - - # direnv things - ".direnv" - - # local only files - "*.local" - - # AI tooling - ".aider*" - "aider" - ]; - }; -} diff --git a/flakes/common/hm_modules/kitty.nix b/flakes/common/hm_modules/kitty.nix deleted file mode 100644 index 236c6ef..0000000 --- a/flakes/common/hm_modules/kitty.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ ... }: -{ - # Enable Kitty terminal - programs.kitty = { - enable = true; - - settings = { - # Window settings - background_opacity = 1.0; - os_window_class = "kitty"; - remember_window_size = false; - placement_strategy = "center"; - initial_window_width = "160c"; - initial_window_height = "55c"; - - # Remove window borders - hide_window_decorations = "titlebar-only"; - tab_title_template = "none"; - active_tab_title_template = "none"; - draw_minimal_borders = "yes"; - window_border_width = "0.1pt"; - - # Colors (Catppuccin Coal) - foreground = "#e0e0e0"; - background = "#262626"; - color0 = "#1f1f1f"; - color1 = "#f38ba8"; - color2 = "#a6e3a1"; - color3 = "#f9e2af"; - color4 = "#89b4fa"; - color5 = "#cba6f7"; - color6 = "#89dceb"; - color7 = "#e0e0e0"; - color8 = "#565656"; - color9 = "#f38ba8"; - color10 = "#a6e3a1"; - color11 = "#f9e2af"; - color12 = "#89b4fa"; - color13 = "#cba6f7"; - color14 = "#89dceb"; - color15 = "#ffffff"; - - # Font settings - font_family = "JetBrainsMonoNL Nerd Font"; - font_size = 12.0; - bold_font = "auto"; - italic_font = "auto"; - italic_bold_font = "auto"; - }; - - # If you want to include extra configuration this way instead of through the main `settings` attribute - extraConfig = '' - # You can add additional config here if needed - ''; - }; -} diff --git a/flakes/common/hm_modules/launcher_rofi.nix b/flakes/common/hm_modules/launcher_rofi.nix deleted file mode 100644 index 353b29e..0000000 --- a/flakes/common/hm_modules/launcher_rofi.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - pkgs, - ... -}: -{ - programs.rofi = { - enable = true; - plugins = with pkgs; [ rofi-calc ]; - extraConfig = { - modi = "drun,run,ssh,window,calc"; - terminal = "alacritty"; - }; - theme = "glue_pro_blue"; - }; - programs.wofi = { - enable = true; - }; -} diff --git a/flakes/common/hm_modules/postgres_cli_options.nix b/flakes/common/hm_modules/postgres_cli_options.nix deleted file mode 100644 index 053099b..0000000 --- a/flakes/common/hm_modules/postgres_cli_options.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: -{ - home.file.".psqlrc".text = '' - \pset pager off - ''; -} - diff --git a/flakes/common/hm_modules/slicer.nix b/flakes/common/hm_modules/slicer.nix deleted file mode 100644 index 4361d5a..0000000 --- a/flakes/common/hm_modules/slicer.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ pkgs, ... }: -let - orca-slicer-fix = pkgs.stdenv.mkDerivation { - name = "orca-slicer"; - buildInputs = [ pkgs.makeWrapper ]; - unpackPhase = "true"; - buildPhase = '' - mkdir -p $out/bin - makeWrapper ${pkgs.orca-slicer}/bin/orca-slicer $out/bin/orca-slicer \ - --set WEBKIT_DISABLE_DMABUF_RENDERER 1 - ''; - - installPhase = '' - mkdir -p $out/share/applications - cat > $out/share/applications/orca-slicer.desktop </dev/null || waybar" ]; - - # Default monitor configuration - monitor = "monitor = , preferred, auto, 1"; - - windowrulev2 = [ - # Bitwarden password manager popup for chrome, always float it - "float, class:^(?i)chrome-nngceckbapebfimnlniiiahkandclblb-Default$, initialtitle:^_crx_nngceckbapebfimnlniiiahkandclblb$" - "center, class:^(?i)chrome-nngceckbapebfimnlniiiahkandclblb-Default$, initialtitle:^_crx_nngceckbapebfimnlniiiahkandclblb$" - "size 720 600, class:^(?i)chrome-nngceckbapebfimnlniiiahkandclblb-Default$, initialtitle:^_crx_nngceckbapebfimnlniiiahkandclblb$" - ]; - - # Input configuration - input = { - kb_layout = "us"; - kb_options = "caps:escape"; - - follow_mouse = 2; - touchpad = { - natural_scroll = true; - disable_while_typing = true; - }; - }; - - # General settings - general = { - gaps_in = 2; - gaps_out = 4; - border_size = 1; - "col.active_border" = "rgba(797979aa)"; - "col.inactive_border" = "rgba(393939aa)"; - layout = "dwindle"; - }; - - # Decoration - decoration = { - rounding = 4; - blur.enabled = false; - }; - - # Animations - animations = { - enabled = false; - }; - - # Layout - dwindle = { - pseudotile = true; - preserve_split = true; - }; - - # Misc - misc = { - force_default_wallpaper = 0; - disable_hyprland_logo = true; - disable_splash_rendering = true; - }; - - # Key bindings - "$mainMod" = "SUPER"; - - bind = [ - # Applications - "$mainMod, Return, exec, ${cfg.terminalCommand}" - "$mainMod, Space, exec, pkill wofi || wofi --show drun" - "$mainMod, q, killactive" - "$mainMod SHIFT, escape, exit" - "$mainMod SHIFT, q, exec, swaylock" - "$mainMod, f, togglefloating" - "$mainMod SHIFT, F, fullscreen" - "$mainMod, g, pseudo" - "$mainMod, t, togglesplit" - - # Move focus with mainMod + hjkl - "$mainMod, h, movefocus, l" - "$mainMod, l, movefocus, r" - "$mainMod, k, movefocus, u" - "$mainMod, j, movefocus, d" - - # Switch workspaces with mainMod + [0-9] - "$mainMod, 1, workspace, 1" - "$mainMod, n, workspace, 1" - "$mainMod, 2, workspace, 2" - "$mainMod, m, workspace, 2" - "$mainMod, 3, workspace, 3" - "$mainMod, comma, workspace, 3" - "$mainMod, 4, workspace, 4" - "$mainMod, period, workspace, 4" - "$mainMod, 5, workspace, 5" - "$mainMod, slash, workspace, 5" - "$mainMod, 6, workspace, 6" - "$mainMod, 7, workspace, 7" - "$mainMod, 8, workspace, 8" - "$mainMod, 9, workspace, 9" - "$mainMod, 0, workspace, 10" - - # Window management (similar to your GNOME setup) - "$mainMod SHIFT, h, movewindow, l" - "$mainMod SHIFT, l, movewindow, r" - "$mainMod SHIFT, k, movewindow, u" - "$mainMod SHIFT, j, movewindow, d" - "$mainMod SHIFT, 1, movetoworkspacesilent, 1" - "$mainMod SHIFT, n, movetoworkspacesilent, 1" - "$mainMod SHIFT, 2, movetoworkspacesilent, 2" - "$mainMod SHIFT, m, movetoworkspacesilent, 2" - "$mainMod SHIFT, 3, movetoworkspacesilent, 3" - "$mainMod SHIFT, comma, movetoworkspacesilent, 3" - "$mainMod SHIFT, 4, movetoworkspacesilent, 4" - "$mainMod SHIFT, period, movetoworkspacesilent, 4" - "$mainMod SHIFT, 5, movetoworkspacesilent, 5" - "$mainMod SHIFT, slash, movetoworkspacesilent, 5" - "$mainMod SHIFT, 6, movetoworkspacesilent, 6" - "$mainMod SHIFT, 7, movetoworkspacesilent, 7" - "$mainMod SHIFT, 8, movetoworkspacesilent, 8" - "$mainMod SHIFT, 9, movetoworkspacesilent, 9" - "$mainMod SHIFT, 0, movetoworkspacesilent, 10" - - # Screenshots - ", Print, exec, grimblast copy area" - ]; - - bindr = [ - # overview - # "$mainMod, SUPER_L, overview:toggle" $ hyprspace plugin - "$mainMod SHIFT, R, exec, systemctl --user restart hyprpanel.service" - ]; - - binde = [ - # Move between workspaces - # "$mainMod, n, workspace, r+1" - # "$mainMod, p, workspace, r-1" - - # Resize windows - "$mainMod CTRL, h, resizeactive, -40 0" - "$mainMod CTRL, l, resizeactive, 40 0" - "$mainMod CTRL, k, resizeactive, 0 -20" - "$mainMod CTRL, j, resizeactive, 0 20" - ]; - - # Mouse bindings - bindm = [ - "$mainMod, mouse:272, movewindow" - "$mainMod, mouse:273, resizewindow" - ]; - - } cfg.extraOptions; - }; -} diff --git a/flakes/hyprland/home_manager/hyprpaper.nix b/flakes/hyprland/home_manager/hyprpaper.nix deleted file mode 100644 index 06d6820..0000000 --- a/flakes/hyprland/home_manager/hyprpaper.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - osConfig, - lib, - ... -}: -let - ccfg = import ../../../config.nix; - cfg_path = [ - ccfg.custom_config_key - "desktopEnvironment" - "hyprland" - ]; - cfg = lib.attrsets.getAttrFromPath cfg_path osConfig; -in -{ - config = { - services.hyprpaper = { - enable = true; - settings = cfg.hyprpaperSettings; - }; - }; -} diff --git a/flakes/hyprland/home_manager/hyprpolkitagent.nix b/flakes/hyprland/home_manager/hyprpolkitagent.nix deleted file mode 100644 index dc68933..0000000 --- a/flakes/hyprland/home_manager/hyprpolkitagent.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - ... -}: -{ - services.hyprpolkitagent = { - enable = true; - }; -} diff --git a/flakes/hyprland/home_manager/quickshell.nix b/flakes/hyprland/home_manager/quickshell.nix deleted file mode 100644 index 2f5032c..0000000 --- a/flakes/hyprland/home_manager/quickshell.nix +++ /dev/null @@ -1,93 +0,0 @@ -{ - osConfig, - lib, - pkgs, - upkgs, - ... -}: -let - ccfg = import ../../../config.nix; - cfg_path = [ - ccfg.custom_config_key - "desktopEnvironment" - "hyprland" - ]; - cfg = lib.attrsets.getAttrFromPath cfg_path osConfig; -in -{ - home.packages = with pkgs; [ - upkgs.quickshell - pulseaudio - brightnessctl - networkmanager - bluez - bluez-tools - power-profiles-daemon - upower - systemd - hyprlock - ]; - - # Ensure CLI quickshell can resolve modules when not using --config-path - home.sessionVariables = { - QML_IMPORT_PATH = "$HOME/.config/quickshell"; - QML2_IMPORT_PATH = "$HOME/.config/quickshell"; - }; - - # install config files - home.file = { - ".config/quickshell/shell.qml".source = ./quickshell/shell.qml; - ".config/quickshell/panels/TopBar.qml".source = ./quickshell/panels/TopBar.qml; - ".config/quickshell/notifications/NotificationServer.qml".source = - ./quickshell/notifications/NotificationServer.qml; - ".config/quickshell/notifications/NotificationPopup.qml".source = - ./quickshell/notifications/NotificationPopup.qml; - ".config/quickshell/notifications/NotificationCenter.qml".source = - ./quickshell/notifications/NotificationCenter.qml; - ".config/quickshell/widgets/status/Workspaces.qml".source = - ./quickshell/widgets/status/Workspaces.qml; - ".config/quickshell/widgets/status/Clock.qml".source = ./quickshell/widgets/status/Clock.qml; - ".config/quickshell/widgets/status/SystemTrayWidget.qml".source = - ./quickshell/widgets/status/SystemTrayWidget.qml; - ".config/quickshell/widgets/status/Battery.qml".source = ./quickshell/widgets/status/Battery.qml; - ".config/quickshell/widgets/controls/QuickSettings.qml".source = - ./quickshell/widgets/controls/QuickSettings.qml; - ".config/quickshell/widgets/controls/Audio.qml".source = ./quickshell/widgets/controls/Audio.qml; - ".config/quickshell/widgets/controls/Network.qml".source = - ./quickshell/widgets/controls/Network.qml; - ".config/quickshell/widgets/controls/Bluetooth.qml".source = - ./quickshell/widgets/controls/Bluetooth.qml; - ".config/quickshell/widgets/controls/Brightness.qml".source = - ./quickshell/widgets/controls/Brightness.qml; - ".config/quickshell/widgets/controls/PowerProfilesWidget.qml".source = - ./quickshell/widgets/controls/PowerProfilesWidget.qml; - ".config/quickshell/panels/qmldir".source = ./quickshell/panels/qmldir; - ".config/quickshell/notifications/qmldir".source = ./quickshell/notifications/qmldir; - ".config/quickshell/widgets/status/qmldir".source = ./quickshell/widgets/status/qmldir; - ".config/quickshell/widgets/controls/qmldir".source = ./quickshell/widgets/controls/qmldir; - # optional: .qmlls.ini should be gitignored; create empty to enable LSP - ".config/quickshell/.qmlls.ini".text = ""; - }; - - systemd.user.services.quickshell = { - Unit = { - Description = "Quickshell Desktop Shell"; - PartOf = [ "graphical-session.target" ]; - After = [ "graphical-session.target" ]; - }; - Service = { - ExecStart = "${upkgs.quickshell}/bin/quickshell --config-path %h/.config/quickshell"; - Restart = "on-failure"; - RestartSec = 2; - Environment = [ - "QML_IMPORT_PATH=%h/.config/quickshell" - "QT_QPA_PLATFORM=wayland" - # Ensure we find icons - "XDG_CURRENT_DESKTOP=quickshell" - ]; - }; - Install = { - WantedBy = [ "graphical-session.target" ]; - }; - }; -} diff --git a/flakes/hyprland/home_manager/scripts.nix b/flakes/hyprland/home_manager/scripts.nix deleted file mode 100644 index 6c3d1c5..0000000 --- a/flakes/hyprland/home_manager/scripts.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ pkgs, ... }: -{ - home.packages = with pkgs; [ - (writeShellScriptBin "toggle-airplane-mode" (builtins.readFile ./scripts/toggle-airplane-mode.sh)) - (writeShellScriptBin "toggle-power-profile" (builtins.readFile ./scripts/toggle-power-profile.sh)) - (writeShellScriptBin "wofi-wifi-menu" (builtins.readFile ./scripts/wofi-wifi-menu.sh)) - (writeShellScriptBin "wofi-bluetooth-menu" (builtins.readFile ./scripts/wofi-bluetooth-menu.sh)) - (writeShellScriptBin "confirm-action" (builtins.readFile ./scripts/confirm-action.sh)) - ]; -} diff --git a/flakes/hyprland/home_manager/scripts/confirm-action.sh b/flakes/hyprland/home_manager/scripts/confirm-action.sh deleted file mode 100755 index 5c30d11..0000000 --- a/flakes/hyprland/home_manager/scripts/confirm-action.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -COMMAND_TO_RUN="$1" -PROMPT_MESSAGE="$2" - -if [ -z "$PROMPT_MESSAGE" ]; then - PROMPT_MESSAGE="Are you sure?" -fi - -choice=$(echo -e "No\nYes" | wofi --dmenu --location center -p "$PROMPT_MESSAGE") - -if [ "$choice" == "Yes" ]; then - eval "$COMMAND_TO_RUN" -fi diff --git a/flakes/hyprland/home_manager/scripts/toggle-airplane-mode.sh b/flakes/hyprland/home_manager/scripts/toggle-airplane-mode.sh deleted file mode 100755 index 7a6636a..0000000 --- a/flakes/hyprland/home_manager/scripts/toggle-airplane-mode.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -if [ "$(nmcli radio all)" = "enabled" ]; then - nmcli radio all off -else - nmcli radio all on -fi diff --git a/flakes/hyprland/home_manager/scripts/toggle-power-profile.sh b/flakes/hyprland/home_manager/scripts/toggle-power-profile.sh deleted file mode 100755 index 1d14395..0000000 --- a/flakes/hyprland/home_manager/scripts/toggle-power-profile.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/usr/bin/env bash -if [ "$(powerprofilesctl get)" = "performance" ]; then - powerprofilesctl set balanced -else - powerprofilesctl set performance -fi diff --git a/flakes/hyprland/home_manager/scripts/wofi-bluetooth-menu.sh b/flakes/hyprland/home_manager/scripts/wofi-bluetooth-menu.sh deleted file mode 100755 index b7a05dc..0000000 --- a/flakes/hyprland/home_manager/scripts/wofi-bluetooth-menu.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env bash - -devices=$(bluetoothctl devices | awk '{print $2, $3}') - -if [ -z "$devices" ]; then - options="󰂲 Power On\n󰂬 Scan for devices" -else - options="$devices\n󰂲 Power Off\n󰂬 Scan for devices" -fi - -chosen=$(echo -e "$options" | wofi --dmenu --location 3 --yoffset 40 --xoffset -20 -p "Bluetooth") - -case "$chosen" in - "󰂲 Power On") bluetoothctl power on;; - "󰂲 Power Off") bluetoothctl power off;; - "󰂬 Scan for devices") bluetoothctl scan on;; - *) - mac=$(echo "$chosen" | awk '{print $1}') - bluetoothctl connect "$mac" - ;; -esac diff --git a/flakes/hyprland/home_manager/scripts/wofi-wifi-menu.sh b/flakes/hyprland/home_manager/scripts/wofi-wifi-menu.sh deleted file mode 100755 index 6e4dbbe..0000000 --- a/flakes/hyprland/home_manager/scripts/wofi-wifi-menu.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -# Get a list of available Wi-Fi networks -nets=$(nmcli --terse --fields SSID,SECURITY,BARS device wifi list | sed '/^--/d' | sed 's/\\:/__/g') - -# Get the current connection status -connected_ssid=$(nmcli -t -f active,ssid dev wifi | egrep '^yes' | cut -d: -f2) - -if [[ ! -z "$connected_ssid" ]]; then - toggle="󰖪 Toggle Wi-Fi Off" -else - toggle="󰖩 Toggle Wi-Fi On" -fi - -# Present the menu to the user -chosen_network=$(echo -e "$toggle\n$nets" | wofi --dmenu --location 3 --yoffset 40 --xoffset -20 -p "Wi-Fi Networks") - -# Perform an action based on the user's choice -if [ "$chosen_network" = "$toggle" ]; then - nmcli radio wifi $([ "$connected_ssid" = "" ] && echo "on" || echo "off") -elif [ ! -z "$chosen_network" ]; then - ssid=$(echo "$chosen_network" | sed 's/__/\\:/g' | awk -F' ' '{print $1}') - nmcli device wifi connect "$ssid" -fi diff --git a/flakes/hyprland/home_manager/swaylock.nix b/flakes/hyprland/home_manager/swaylock.nix deleted file mode 100644 index 06ebf13..0000000 --- a/flakes/hyprland/home_manager/swaylock.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - ... -}: -{ - programs.swaylock = { - enable = true; - settings = { - color = "#000000"; - indicator-caps-lock = true; - indicator-idle-visible = true; - indicator-radius = 100; - indicator-thickness = 10; - font = "JetBrainsMono Nerd Font Regular"; - font-size = 20; - }; - }; -} diff --git a/flakes/hyprland/home_manager/swaync.nix b/flakes/hyprland/home_manager/swaync.nix deleted file mode 100644 index b26fa58..0000000 --- a/flakes/hyprland/home_manager/swaync.nix +++ /dev/null @@ -1,251 +0,0 @@ -{ - lib, - osConfig, - ... -}: -let - ccfg = import ../../../config.nix; - cfg_path = [ - ccfg.custom_config_key - "desktopEnvironment" - "hyprland" - "swaync" - ]; - cfg = lib.attrsets.getAttrFromPath cfg_path osConfig; -in -{ - config = lib.mkIf cfg.enable { - services.swaync = { - enable = true; - settings = { - ignore = [ - "com.spotify.Client" - ]; - - positionX = "right"; - positionY = "top"; - layer = "overlay"; - control-center-layer = "top"; - layer-shell = true; - cssPriority = "application"; - - control-center-margin-top = 0; - control-center-margin-bottom = 0; - control-center-margin-right = 0; - control-center-margin-left = 0; - - notification-2fa-action = true; - notification-inline-replies = false; - notification-icon-size = 64; - notification-body-image-height = 100; - notification-body-image-width = 200; - - timeout = 10; - timeout-low = 5; - timeout-critical = 0; - - control-center-width = 500; - control-center-height = 600; - notification-window-width = 500; - - keyboard-shortcuts = true; - image-visibility = "when-available"; - transition-time = 200; - hide-on-clear = false; - hide-on-action = true; - script-fail-notify = true; - - widgets = [ - "inhibitors" - "title" - "dnd" - "volume" - "backlight" - "mpris" - "buttons-grid#quick" - "notifications" - ]; - - # Widget configurations - widget-config = { - inhibitors = { - text = "Inhibitors"; - button-text = "Clear All"; - clear-all-button = true; - }; - title = { - text = "Notifications"; - clear-all-button = true; - button-text = "Clear All"; - }; - dnd.text = "Do Not Disturb"; - mpris = { - image-size = 96; - image-radius = 12; - }; - volume = { - label = "󰕾"; - show-per-app = true; - }; - backlight = { - label = "󰃟"; - device = "intel_backlight"; - }; - "buttons-grid#quick" = { - columns = 4; # adjust: 3/4/5 - icon-size = 20; # tweak to taste - actions = [ - # Power - { - label = "󰐥"; - tooltip = "Shutdown"; - command = "confirm-action 'systemctl poweroff' 'Shutdown?'"; - } - { - label = "󰜉"; - tooltip = "Reboot"; - command = "confirm-action 'systemctl reboot' 'Reboot?'"; - } - { - label = "󰍃"; - tooltip = "Logout"; - command = "confirm-action 'hyprctl dispatch exit' 'Logout?'"; - } - ]; - }; - }; - }; - - # Custom CSS for the control center - style = '' - .control-center { - background: #1a1b26; - border: 2px solid #7dcae4; - border-radius: 12px; - } - - .control-center-list { - background: transparent; - } - - .control-center .notification-row:focus, - .control-center .notification-row:hover { - opacity: 1; - background: #24283b; - } - - .notification { - border-radius: 8px; - margin: 6px 12px; - box-shadow: 0 0 0 1px rgba(125, 196, 228, 0.3), 0 1px 3px 1px rgba(0, 0, 0, 0.7), 0 2px 6px 2px rgba(0, 0, 0, 0.3); - padding: 0; - } - - /* Widget styling */ - .widget-title { - margin: 8px; - font-size: 1.5rem; - color: #c0caf5; - } - - .widget-dnd { - margin: 8px; - font-size: 1.1rem; - color: #c0caf5; - } - - .widget-dnd > switch { - font-size: initial; - border-radius: 8px; - background: #414868; - border: 1px solid #7dcae4; - } - - .widget-dnd > switch:checked { - background: #7dcae4; - } - - .widget-mpris { - color: #c0caf5; - background: #24283b; - padding: 8px; - margin: 8px; - border-radius: 8px; - } - - .widget-mpris-player { - padding: 8px; - margin: 8px; - } - - .widget-mpris-title { - font-weight: bold; - font-size: 1.25rem; - } - - .widget-mpris-subtitle { - font-size: 1.1rem; - color: #9ece6a; - } - - .widget-volume { - background: #24283b; - padding: 8px; - margin: 8px; - border-radius: 8px; - color: #c0caf5; - } - - .widget-backlight { - background: #24283b; - padding: 8px; - margin: 8px; - border-radius: 8px; - color: #c0caf5; - } - - .widget-menubar { - background: #24283b; - padding: 8px; - margin: 8px; - border-radius: 8px; - color: #c0caf5; - } - - .widget-menubar .menu-item button { - background: #1f2335; - color: #c0caf5; - border-radius: 8px; - padding: 6px 10px; - margin: 4px; - border: 1px solid #2e3440; - font-family: "JetBrainsMonoNL Nerd Font"; - } - - .widget-menubar .menu-item button:hover { - background: #414868; - border-color: #7dcae4; - } - - .topbar-buttons button { - border: none; - background: transparent; - color: #c0caf5; - font-size: 1.1rem; - border-radius: 8px; - margin: 0 4px; - padding: 8px; - } - - .topbar-buttons button:hover { - background: #414868; - } - - .topbar-buttons button:active { - background: #7dcae4; - color: #1a1b26; - } - ''; - }; - }; -} diff --git a/flakes/hyprland/home_manager/template.nix b/flakes/hyprland/home_manager/template.nix deleted file mode 100644 index 905d5e4..0000000 --- a/flakes/hyprland/home_manager/template.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - osConfig, - lib, - pkgs, - ... -}: -let - ccfg = import ../../../config.nix; - cfg_path = [ - ccfg.custom_config_key - "desktopEnvironment" - "hyprland" - ]; - cfg = lib.attrsets.getAttrFromPath cfg_path osConfig; -in -{ - -} diff --git a/flakes/hyprland/home_manager/theme.nix b/flakes/hyprland/home_manager/theme.nix deleted file mode 100644 index c6045d0..0000000 --- a/flakes/hyprland/home_manager/theme.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - pkgs, - ... -}: -{ - home.pointerCursor = { - gtk.enable = true; - # x11.enable = true; - package = pkgs.bibata-cursors; - name = "Bibata-Modern-Classic"; - size = 16; - }; - # GTK theming - gtk = { - enable = true; - - theme = { - package = pkgs.flat-remix-gtk; - name = "Flat-Remix-GTK-Grey-Darkest"; - }; - - iconTheme = { - package = pkgs.adwaita-icon-theme; - name = "Adwaita"; - }; - - font = { - name = "Sans"; - size = 11; - }; - }; -} diff --git a/flakes/hyprland/home_manager/waybar.nix b/flakes/hyprland/home_manager/waybar.nix deleted file mode 100644 index 66f3349..0000000 --- a/flakes/hyprland/home_manager/waybar.nix +++ /dev/null @@ -1,258 +0,0 @@ -{ lib, osConfig, ... }: -let - ccfg = import ../../../config.nix; - cfg_path = [ - ccfg.custom_config_key - "desktopEnvironment" - "hyprland" - "waybar" - ]; - cfg = lib.attrsets.getAttrFromPath cfg_path osConfig; -in -{ - config = lib.mkIf cfg.enable { - - programs.waybar = { - enable = true; - systemd.enable = true; - settings = { - mainBar = { - layer = "top"; - position = "top"; - height = 28; - spacing = 6; - margin-top = 0; - margin-bottom = 0; - margin-left = 10; - margin-right = 10; - - modules-left = [ - "hyprland/workspaces" - ]; - modules-center = [ - "clock" - "temperature" - "cpu" - "memory" - "disk" - ]; - modules-right = [ - "battery" - "battery#bat2" - "pulseaudio" - "network" - "bluetooth" - "power-profiles-daemon" - "backlight" - "custom/notifications" - "tray" - "custom/power" - ]; - - "hyprland/workspaces" = { - format = "{icon}"; - format-icons = { - "1" = "一"; - "2" = "二"; - "3" = "三"; - "4" = "四"; - "5" = "五"; - "6" = "六"; - "7" = "七"; - "8" = "八"; - "9" = "九"; - "10" = "十"; - "11" = "十一"; - "12" = "十二"; - "13" = "十三"; - "14" = "十四"; - "15" = "十五"; - "16" = "十六"; - "17" = "十七"; - "18" = "十八"; - "19" = "十九"; - "20" = "二十"; - }; - disable-scroll = false; - }; - - # CENTER - clock = { - format = "{:%b %d, %H:%M}"; - tooltip-format = "{:%Y %B}\n{calendar}"; - }; - - temperature = { - thermal-zone = 2; - hwmon-path = "/sys/class/hwmon/hwmon2/temp1_input"; - critical-threshold = 80; - format-critical = "󰔏 {temperatureC}°C"; - format = "󰔏 {temperatureC}°C"; - }; - - cpu = { - format = "󰻠 {usage}%"; - tooltip = true; - on-click = "btop"; - }; - - memory = { - format = "󰍛 {}%"; - on-click = "btop"; - }; - - disk = { - interval = 30; - format = "󰋊 {percentage_used}%"; - path = "/"; - on-click = "btop"; - }; - - # RIGHT - "battery" = { - "states" = { - # "good"= 95; - "warning" = 30; - "critical" = 15; - }; - "format" = "{capacity}% {icon}"; - "format-full" = "{capacity}% {icon}"; - "format-charging" = "{capacity}% "; - "format-plugged" = "{capacity}% "; - "format-alt" = "{time} {icon}"; - # "format-good"= ""; // An empty format will hide the module - # "format-full"= ""; - "format-icons" = [ - "" - "" - "" - "" - "" - ]; - }; - "battery#bat2" = { - "bat" = "BAT2"; - }; - - pulseaudio = { - format = "{icon} {volume}%"; - format-bluetooth = "󰂰 {volume}%"; - format-bluetooth-muted = "󰂲 "; - format-muted = "󰖁 "; - format-source = "󰍬 {volume}%"; - format-source-muted = "󰍭 "; - format-icons = { - headphone = "󰋋"; - hands-free = "󰂑"; - headset = "󰂑"; - phone = "󰏲"; - portable = "󰦧"; - car = "󰄋"; - default = [ - "󰕿" - "󰖀" - "󰕾" - ]; - }; - scroll-step = 5; - on-click = "pavucontrol"; - on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; - }; - - network = { - format-wifi = "󰤨 {essid} ({signalStrength}%)"; - format-ethernet = "󰈀 {ipaddr}/{cidr}"; - tooltip-format = "{ifname} via {gwaddr} "; - format-linked = "󰈀 {ifname} (No IP)"; - format-disconnected = "󰖪 Disconnected"; - # on-click = "wofi-wifi-menu"; - # on-click-right = "nmcli radio wifi toggle"; - }; - - bluetooth = { - format = "󰂯 {status}"; - format-connected = "󰂱 {device_alias}"; - format-connected-battery = "󰂱 {device_alias} {device_battery_percentage}%"; - tooltip-format = "{controller_alias}\t{controller_address}\n\n{num_connections} connected"; - tooltip-format-connected = "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}"; - tooltip-format-enumerate-connected = "{device_alias}\t{device_address}"; - tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_address}\t{device_battery_percentage}%"; - # on-click = "wofi-bluetooth-menu"; - # on-click-right = "bluetoothctl power toggle"; - }; - - "power-profiles-daemon" = { - format = "{icon}"; - "tooltip-format" = "Power profile: {profile}\nDriver: {driver}"; - tooltip = true; - "format-icons" = { - default = ""; - performance = ""; - balanced = ""; - "power-saver" = ""; - }; - }; - - backlight = { - format = "{percent}% {icon}"; - "format-icons" = [ - "" - "" - "" - "" - "" - "" - "" - "" - "" - ]; - }; - - "custom/notifications" = { - format = "{icon} {}"; - format-icons = { - notification = ""; - none = ""; - dnd-notification = "󰂛"; - dnd-none = "󰂛"; - inhibited-notification = ""; - inhibited-none = ""; - dnd-inhibited-notification = "󰂛"; - dnd-inhibited-none = "󰂛"; - }; - return-type = "json"; - exec-if = "which swaync-client"; - exec = "swaync-client -swb"; - on-click = "swaync-client -t -sw"; - on-click-right = "swaync-client -d -sw"; - escape = true; - tooltip = false; - }; - - "sway/language" = { - format = "{}"; - }; - - "tray" = { - "spacing" = 10; - }; - - "custom/power" = { - format = "⏻ "; - tooltip = false; - menu = "on-click"; - "menu-file" = ./waybar/power_menu.xml; - "menu-actions" = { - shutdown = "shutdown 0"; - reboot = "reboot"; - logout = "loginctl terminate-session $(loginctl list-sessions | grep seat0 | awk '{print $1}')"; - }; - }; - - }; - }; - - style = builtins.readFile ./waybar/waybar.css; - }; - }; -} diff --git a/flakes/hyprland/home_manager/waybar/power_menu.xml b/flakes/hyprland/home_manager/waybar/power_menu.xml deleted file mode 100644 index a061b18..0000000 --- a/flakes/hyprland/home_manager/waybar/power_menu.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - Logout - - - - - - - - Reboot - - - - - - - - Shutdown - - - - diff --git a/flakes/hyprland/home_manager/waybar/waybar.css b/flakes/hyprland/home_manager/waybar/waybar.css deleted file mode 100644 index 6ed5a8c..0000000 --- a/flakes/hyprland/home_manager/waybar/waybar.css +++ /dev/null @@ -1,102 +0,0 @@ -* { - /* `otf-font-awesome` is required to be installed for icons */ - font-family: "JetBrainsMonoNL Nerd Font", FontAwesome, Roboto, Helvetica, Arial, sans-serif; - font-size: 14px; - border: none; - border-radius: 0; - min-height: 0; - color: #f1f1f1; -} - -window#waybar { - background: transparent; -} - -#workspaces button.focused, -#workspaces button.active { - background-color: rgba(220, 220, 220, 0.2); -} - -#workspaces button.urgent { - background-color: rgba(214, 82, 82, 0.3); -} - -button, -#clock, -#battery, -#cpu, -#memory, -#disk, -#temperature, -#backlight, -#network, -#pulseaudio, -#wireplumber, -#custom-media, -#custom-notifications, -#custom-power, -#tray, -#mode, -#idle_inhibitor, -#scratchpad, -#power-profiles-daemon, -#bluetooth, -#language, -#mpd { - padding: 0 5px; - color: #f1f1f1; - background-color: rgba(220, 220, 220, 0.1); - border-radius: 6px; -} - - -button:hover, -#clock:hover, -#battery:hover, -#cpu:hover, -#memory:hover, -#disk:hover, -#temperature:hover, -#backlight:hover, -#network:hover, -#pulseaudio:hover, -#wireplumber:hover, -#custom-media:hover, -#custom-notifications:hover, -#tray:hover, -#mode:hover, -#idle_inhibitor:hover, -#scratchpad:hover, -#power-profiles-daemon:hover, -#bluetooth:hover, -#language:hover, -#mpd:hover { - color: #f1f1f1; - background-color: rgba(220, 220, 220, 0.2); - border-radius: 6px; -} - -#power-profiles-daemon { - padding-right: 15px; -} - -#power-profiles-daemon.performance { - color: #fff7d6; -} - -#power-profiles-daemon.balanced { - color: #d6efff; -} - -#power-profiles-daemon.power-saver { - color:#dcffd6; -} - -#tray>.passive { - -gtk-icon-effect: dim; -} - -#tray>.needs-attention { - -gtk-icon-effect: highlight; - background-color: #eb4d4b; -} diff --git a/flakes/hyprland/home_manager/wofi.nix b/flakes/hyprland/home_manager/wofi.nix deleted file mode 100644 index f2df05b..0000000 --- a/flakes/hyprland/home_manager/wofi.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - ... -}: -{ - programs.wofi = { - enable = true; - settings = { - width = 500; - height = 600; - location = "bottom"; - show = "drun"; - prompt = "..."; - filter_rate = 100; - allow_markup = true; - no_actions = true; - halign = "fill"; - orientation = "vertical"; - content_halign = "fill"; - insensitive = true; - allow_images = true; - image_size = 40; - gtk_dark = true; - }; - }; - -} diff --git a/flakes/secrets/flake.nix b/flakes/secrets/flake.nix deleted file mode 100644 index a282f79..0000000 --- a/flakes/secrets/flake.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - inputs = { - ragenix.url = "github:yaxitech/ragenix"; - }; - - outputs = - { - ragenix, - ... - }: - { - nixosModules = { - default = - { - config, - lib, - pkgs, - ... - }: - { - imports = [ - ragenix.nixosModules.age - ./secrets - ]; - config = { - _module.args = { - inherit ragenix; - }; - }; - }; - }; - }; -} diff --git a/flakes/test b/flakes/test deleted file mode 100644 index e69de29..0000000 diff --git a/hosts/lio/home_manager.nix b/hosts/lio/home_manager.nix deleted file mode 100644 index f42762b..0000000 --- a/hosts/lio/home_manager.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ - config, - lib, - pkgs, - modulesPath, - ... -}: -{ - -}