diff --git a/modules/home/desktop/default.nix b/modules/home/desktop/default.nix index 592f2e7..0ba0ea6 100644 --- a/modules/home/desktop/default.nix +++ b/modules/home/desktop/default.nix @@ -16,8 +16,8 @@ in { ./cosmic # ./dms # ./gnome - ./niri - ./plasma + # ./niri + # ./plasma ] ++ (with inputs; [ dms.homeModules.dank-material-shell.default diff --git a/modules/home/desktop/niri/default.nix b/modules/home/desktop/niri/default.nix deleted file mode 100644 index 7f28ddc..0000000 --- a/modules/home/desktop/niri/default.nix +++ /dev/null @@ -1,203 +0,0 @@ -{ - config, - inputs, - lib, - osConfig, - perSystem, - pkgs, - ... -}: let - inherit (lib) mkIf mkEnableOption mkForce getExe; - inherit (osConfig.networking) hostName; - - cfg = config.desktop.niri; - - ifLaptop = mkIf (hostName != "dunamis"); - - commonArgs = rec { - inherit config inputs lib osConfig perSystem pkgs; - baseMenu = getExe perSystem.vicinae.default; - clipboard = baseMenu + " vicinae://extensions/vicinae/clipboard/history"; - launcher = baseMenu + " toggle"; - lockscreen = getExe pkgs.gtklock; - }; -in { - imports = with inputs; [ - # vicinae.homeManagerModules.default - # walker.homeManagerModules.default - ]; - options = { - desktop.niri.enable = - mkEnableOption "enable niri desktop"; - }; - config = mkIf cfg.enable { - stylix.targets = { - waybar.enable = false; - wpaperd.enable = true; - qt.enable = false; - }; - stylix.iconTheme = { - enable = true; - light = "Papirus-Light"; - dark = "Papirus-Dark"; - package = let - inherit (lib.strings) hasPrefix; - inherit (osConfig.module.stylix) theme; - color = - if (hasPrefix "rose-pine" theme) - then "indigo" - else if (hasPrefix "nord" theme) - then "nordic" - else if (hasPrefix "oxocarbon" theme) - then "green" - else if (hasPrefix "s" theme) - then "teal" - else null; - in - pkgs.papirus-icon-theme.override {inherit color;}; - }; - dconf.settings = { - "org/gnome/desktop/wm/preferences" = { - button-layout = "icon:close"; - }; - "org/gnome/desktop/interface" = { - icon-theme = config.gtk.iconTheme.name; - color-scheme = - if config.stylix.polarity == "dark" - then lib.mkDefault "prefer-dark" - else lib.mkDefault "prefer-light"; - }; - }; - qt = { - enable = true; - platformTheme.name = "gtk3"; - }; - - # programs.walker = import ./programs/walker commonArgs; - programs.waybar = import ./programs/waybar commonArgs; - services = import ./services commonArgs; - - home.packages = with pkgs; - [ - # gui libadwaita apps - celluloid # mpv gui in libadwaita - gnome-text-editor - helvum # pipewire patchbay in rust - junction # app chooser - loupe # image viewer and editor in rust - nautilus # file manager - papers # pdf reader in rust - pwvucontrol # pipewire gui in rust - wdisplays # wlroots display configurator - ] - ++ [ - # misc utils - (ifLaptop brightnessctl) - dconf - libnotify - playerctl - wl-clipboard-rs # wl-clipboard in rust - xfce.xfconf - ]; - - xdg = { - configFile = { - # niri = import ./niri.nix commonArgs; - "mimeapps.list".force = true; - }; - mime.enable = true; - mimeApps = { - enable = true; - defaultApplications = let - file_manager = ["org.gnome.Nautilus.desktop"]; - image_viewer = ["org.gnome.Loupe.desktop"]; - pdf_reader = ["org.gnome.Papers.desktop"]; - video_player = ["io.github.celluloid_player.Celluloid.desktop"]; - web_browser = ["re.sonny.Junction.desktop"]; - in { - "application/pdf" = pdf_reader; - "image/jpeg" = image_viewer; - "image/png" = image_viewer; - "inode/directory" = file_manager; - "text/html" = web_browser; - "video/mp4" = video_player; - "video/mpeg" = video_player; - "video/x-matroska" = video_player; - "video/x-mpeg" = video_player; - "x-scheme-handler/about" = web_browser; - "x-scheme-handler/http" = web_browser; - "x-scheme-handler/https" = web_browser; - "x-scheme-handler/unknown" = web_browser; - }; - }; - }; - systemd.user = { - # settings.Manager.DefaultEnvironment = { - # DISPLAY = ":123"; - # }; - targets.tray.Unit.Description = "Home Manager System Tray"; # workaround for udiskie - services = let - mkGraphicalService = config: lib.attrsets.recursiveUpdate graphicalService config; - graphicalService = { - Install.WantedBy = ["niri.service"]; - Unit = { - Requisite = ["graphical-session.target"]; - PartOf = ["graphical-session.target"]; - After = ["graphical-session.target"]; - }; - Service = { - Restart = "on-failure"; - TimeoutStopSec = 10; - RestartSec = 1; - }; - }; - in - lib.mkMerge [ - { - copyq = mkGraphicalService {Service.Environment = mkForce "QT_QPA_PLATFORM=wayland";}; - network-manager-applet = mkGraphicalService {}; - udiskie = mkGraphicalService {}; - # walker = mkGraphicalService {}; - waybar = mkGraphicalService {}; - wpaperd = - mkGraphicalService {} - // { - Service.TimeoutStopSec = mkForce "1"; - Service.Restart = mkForce "always"; - }; - xfce4-notifyd = mkGraphicalService { - Service.ExecStart = pkgs.xfce.xfce4-notifyd + "/lib/xfce4/notifyd/xfce4-notifyd"; - }; - # xwayland-satellite = mkGraphicalService { - # Service = { - # Type = "simple"; - # ExecStart = getExe pkgs.xwayland-satellite + " :123"; - # }; - # }; - # gnome-polkit-agent = mkGraphicalService { - # Service = { - # Type = "simple"; - # ExecStart = pkgs.polkit_gnome + "/libexec/polkit-gnome-authentication-agent-1"; - # }; - # }; - } - (lib.mkIf (hostName == "morphius") { - lisgd = mkGraphicalService { - Service = { - # Group = "input"; - Type = "simple"; - ExecStart = - "${pkgs.lisgd}/bin/lisgd" - + " -d /dev/input/by-path/pci-0000:00:15.1-platform-i2c_designware.1-event" - + ''-g "1,DU,TL,*,P,niri msg action toggle-overview"'' - + " -g \"3,UD,T,*,P,niri msg action focus-workspace-up\"" - + " -g \"3,DU,B,*,P,niri msg action focus-workspace-down\"" - + " -g \"3,LR,L,*,P,niri msg action focus-column-left\"" - + " -g \"3,RL,R,*,P,niri msg action focus-column-right\""; - }; - }; - }) - ]; - }; - }; -} diff --git a/modules/home/desktop/niri/niri.nix b/modules/home/desktop/niri/niri.nix deleted file mode 100644 index 92533ad..0000000 --- a/modules/home/desktop/niri/niri.nix +++ /dev/null @@ -1,386 +0,0 @@ -{ - config, - lib, - osConfig, - perSystem, - # pkgs, - clipboard, - launcher, - lockscreen, - ... -}: let - inherit (config.lib.stylix) colors; - inherit (config.stylix) cursor; - inherit (osConfig.networking) hostName; - - keyboard = - if hostName == "eldrid" - then "chromeos" - else "platform"; - xdgPics = - config.xdg.userDirs.pictures; -in { - target = "niri/config.kdl"; - text = let - arrows = { - left = "Left"; - down = "Down"; - up = "Up"; - right = "Right"; - }; - homerow-arrows = { - left = "n"; - down = "e"; - up = "i"; - right = "o"; - }; - letters = { - first = "Q"; - second = "W"; - third = "F"; - fourth = "P"; - fifth = "B"; - sixth = "J"; - seventh = "L"; - eighth = "U"; - ninth = "Y"; - }; - numbers = { - first = "1"; - second = "2"; - third = "3"; - fourth = "4"; - fifth = "5"; - sixth = "6"; - seventh = "7"; - eighth = "8"; - ninth = "9"; - }; - genArrowNavigation = keys: '' - Mod+${keys.left} { focus-column-left; } - Mod+${keys.down} { focus-window-or-workspace-down; } - Mod+${keys.up} { focus-window-or-workspace-up; } - Mod+${keys.right} { focus-column-right; } - Mod+Ctrl+${keys.left} { move-column-left; } - Mod+Ctrl+${keys.down} { move-window-down-or-to-workspace-down; } - Mod+Ctrl+${keys.up} { move-window-up-or-to-workspace-up; } - Mod+Ctrl+${keys.right} { move-column-right; } - Mod+Shift+${keys.left} { focus-monitor-left; } - Mod+Shift+${keys.down} { focus-monitor-down; } - Mod+Shift+${keys.up} { focus-monitor-up; } - Mod+Shift+${keys.right} { focus-monitor-right; } - Mod+Shift+Ctrl+${keys.left} { move-column-to-monitor-left; } - Mod+Shift+Ctrl+${keys.down} { move-column-to-monitor-down; } - Mod+Shift+Ctrl+${keys.up} { move-column-to-monitor-up; } - Mod+Shift+Ctrl+${keys.right} { move-column-to-monitor-right; } - ''; - genWorkspacesNavigation = keys: '' - Mod+${keys.first} { focus-workspace 1; } - Mod+${keys.second} { focus-workspace 2; } - Mod+${keys.third} { focus-workspace 3; } - Mod+${keys.fourth} { focus-workspace 4; } - Mod+${keys.fifth} { focus-workspace 5; } - Mod+${keys.sixth} { focus-workspace 6; } - Mod+${keys.seventh} { focus-workspace 7; } - Mod+${keys.eighth} { focus-workspace 8; } - Mod+${keys.ninth} { focus-workspace 9; } - Mod+Ctrl+Shift+${keys.first} { move-column-to-workspace 1; } - Mod+Ctrl+Shift+${keys.second} { move-column-to-workspace 2; } - Mod+Ctrl+Shift+${keys.third} { move-column-to-workspace 3; } - Mod+Ctrl+Shift+${keys.fourth} { move-column-to-workspace 4; } - Mod+Ctrl+Shift+${keys.fifth} { move-column-to-workspace 5; } - Mod+Ctrl+Shift+${keys.sixth} { move-column-to-workspace 6; } - Mod+Ctrl+Shift+${keys.seventh} { move-column-to-workspace 7; } - Mod+Ctrl+Shift+${keys.eighth} { move-column-to-workspace 8; } - Mod+Ctrl+Shift+${keys.ninth} { move-column-to-workspace 9; } - ''; - in '' - environment { - CLUTTER_BACKEND "wayland" - GDK_BACKEND "wayland" - MOZ_ENABLE_WAYLAND "1" - MOZ_WEBRENDER "1" - QT_QPA_PLATFORM "wayland" - SDL_VIDEODRIVER "wayland" - XDG_SESSION_TYPE "wayland" - } - - input { - keyboard { - xkb { - layout "us,ua" - variant "colemak_dh_ortho," - } - repeat-delay 200 - repeat-rate 50 - track-layout "window" - } - touchpad { - tap - natural-scroll - accel-speed 0.2 - accel-profile "flat" - } - mouse { - accel-speed 0.0 - accel-profile "flat" - } - touch { - map-to-output "eDP-1" - } - warp-mouse-to-focus - workspace-auto-back-and-forth - } - - cursor { - xcursor-theme "${cursor.name}" - xcursor-size ${toString cursor.size} - } - - hotkey-overlay { - skip-at-startup - } - - xwayland-satellite { - path "${lib.getExe perSystem.xwst.xwayland-satellite}" - } - - clipboard { - disable-primary - } - - prefer-no-csd - - screenshot-path "${xdgPics}/screenshots/screenshot-%Y-%m-%d-%H-%M-%S.png" - - animations { - off - slowdown 0.5 - } - - layout { - gaps 3 - - // background-color "#${colors.base02}" - background-color "transparent" - center-focused-column "never" // "on-overflow" - default-column-width { proportion 1.0; } - - preset-column-widths { - proportion 0.33333 - proportion 0.66667 - } - - struts { - left 36 - right 36 - } - - tab-indicator { - active-color "#${colors.base04}" - inactive-color "#${colors.base03}" - corner-radius 6 - gap 3 - gaps-between-tabs 3 - // length total-proportion=0.3 - place-within-column - position "left" - width 6 - } - focus-ring { - off - width 1 - active-color "#${colors.base03}" - inactive-color "#${colors.base02}" - urgent-color "#${colors.base08}" - } - border { - // off - width 1 - active-color "#${colors.base03}" - inactive-color "#${colors.base02}" - urgent-color "#${colors.base08}" - } - } - - window-rule { - geometry-corner-radius 12 - clip-to-geometry true - } - window-rule { - match is-window-cast-target=true - focus-ring { - width 3 - active-color "#${colors.base0F}" - inactive-color "#${colors.base03}" - } - border { - width 3 - active-color "#${colors.base0F}" - inactive-color "#${colors.base03}" - } - } - - layer-rule { - match namespace="^wpaperd.*$" - place-within-backdrop true - } - overview { - workspace-shadow { - off - } - } - layer-rule { - match namespace="waybar" - match at-startup=true - - opacity 0.99 // fixes the black fill - } - - window-rule { - match title="Картинка в картинці" - match title="Picture-in-Picture" - open-floating true - } - window-rule { - match app-id="org.wezfurlong.wezterm" - match app-id="com.mitchellh.ghostty" - default-column-width { proportion 1.0; } - draw-border-with-background false - } - window-rule { - match app-id="re.sonny.Junction" - match app-id="com.github.hluk.copyq" - match title=r"^.* - Choose User Profile$" - open-floating true - open-focused true - } - - window-rule { - match app-id="com.mitchellh.ghostty" - draw-border-with-background false - } - - window-rule { - match app-id=r#"^org\.keepassxc\.KeePassXC$"# - match app-id=r#"^org\.gnome\.World\.Secrets$"# - match app-id=r#"^Bitwarden$"# - match app-id="io.github.kukuruzka165.materialgram" - match app-id="org.telegram.desktop" - match app-id="org.signal.Signal" - match app-id="WebCord" - // block-out-from "screen-capture" - block-out-from "screencast" - } - - - binds { - Mod+Shift+Slash { show-hotkey-overlay; } - - Mod+Tab { focus-workspace-previous; } - Mod+C { center-column; } - Mod+M { maximize-column; } - Mod+H { set-column-width "50%"; } - Mod+T { set-column-width "33%"; } - Mod+Shift+T { set-column-width "67%"; } - Mod+V { toggle-column-tabbed-display; } - Mod+G { switch-focus-between-floating-and-tiling; } - Mod+X { spawn "pkill" "-SIGUSR1" "waybar"; } // hide/show waybar - - Mod+Ctrl+Comma { consume-or-expel-window-left; } - Mod+Ctrl+Period { consume-or-expel-window-right; } - - Mod+Ctrl+Q { close-window; } - Mod+Ctrl+M { fullscreen-window; } - Mod+Ctrl+G { toggle-window-floating; } - - Mod+Shift+M { maximize-window-to-edges; } - - Mod+Ctrl+Shift+M { toggle-windowed-fullscreen; } - - Mod+Minus { set-column-width "-10%"; } - Mod+Equal { set-column-width "+10%"; } - Mod+Comma { set-column-width "-10%"; } - Mod+Period { set-column-width "+10%"; } - Mod+Shift+Comma { set-window-height "-10%"; } - Mod+Shift+Period { set-window-height "+10%"; } - - Mod+Space { switch-layout "next"; } - - Mod+Ctrl+Space repeat=false { toggle-overview; } - - Mod+Return repeat=false { spawn "sh" "-c" "$TERMINAL"; } - Mod+BackSpace repeat=false { spawn "sh" "-c" "${launcher}"; } - Mod+D repeat=false { spawn "sh" "-c" "${launcher}"; } - Mod+Ctrl+L repeat=false { spawn "${lockscreen}"; } - Mod+Ctrl+V repeat=false { spawn "sh" "-c" "${clipboard}"; } - - // Mod+Shift+W repeat=false { spawn "walker" "-m" "windows"; } - - Mod+Ctrl+Shift+BracketLeft { quit; } - Mod+Ctrl+Shift+BracketRight { power-off-monitors; } - - Print { screenshot; } - Ctrl+Print { screenshot-screen; } - Shift+Print { screenshot-window; } - - // Caps_Lock { spawn "swayosd-client" "--caps-lock"; } - // XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "-l" "1.0" "@DEFAULT_AUDIO_SINK@" "5%+"; } - // XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "-l" "1.0" "@DEFAULT_AUDIO_SINK@" "5%-"; } - // XF86AudioMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"; } - // XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } - XF86AudioRaiseVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "raise"; } - XF86AudioLowerVolume allow-when-locked=true { spawn "swayosd-client" "--output-volume" "lower"; } - XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--output-volume" "mute-toggle"; } - Shift+XF86AudioMute allow-when-locked=true { spawn "swayosd-client" "--input-volume" "mute-toggle"; } - XF86AudioMicMute allow-when-locked=true { spawn "swayosd-client" "--input-volume" "mute-toggle"; } - XF86AudioPlay allow-when-locked=true { spawn "playerctl" "play-pause"; } - XF86AudioPause allow-when-locked=true { spawn "playerctl" "pause"; } - XF86AudioPrev allow-when-locked=true { spawn "playerctl" "previous"; } - XF86AudioNext allow-when-locked=true { spawn "playerctl" "next"; } - - XF86ScreenSaver allow-when-locked=true { spawn "${lockscreen}"; } - XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+"; } - XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-"; } - Alt+XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+" "-d" "${keyboard}::kbd_backlight"; } - Alt+XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-" "-d" "${keyboard}::kbd_backlight"; } - XF86KbdBrightnessUp allow-when-locked=true { spawn "brightnessctl" "s" "5%+" "-d" "${keyboard}::kbd_backlight"; } - XF86KbdBrightnessDown allow-when-locked=true { spawn "brightnessctl" "s" "5%-" "-d" "${keyboard}::kbd_backlight"; } - - - Mod+Home { focus-column-first; } - Mod+End { focus-column-last; } - Mod+Ctrl+Home { move-column-to-first; } - Mod+Ctrl+End { move-column-to-last; } - - Mod+Next { focus-workspace-down; } - Mod+Prior { focus-workspace-up; } - Mod+Ctrl+Next { move-column-to-workspace-down; } - Mod+Ctrl+Prior { move-column-to-workspace-up; } - Mod+Shift+Next { move-workspace-down; } - Mod+Shift+Prior { move-workspace-up; } - - Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; } - Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; } - Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; } - Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; } - - Mod+WheelScrollRight { focus-column-right; } - Mod+WheelScrollLeft { focus-column-left; } - Mod+Ctrl+WheelScrollRight { move-column-right; } - Mod+Ctrl+WheelScrollLeft { move-column-left; } - Mod+Shift+WheelScrollDown { focus-column-right; } - Mod+Shift+WheelScrollUp { focus-column-left; } - Mod+Ctrl+Shift+WheelScrollDown { move-column-right; } - Mod+Ctrl+Shift+WheelScrollUp { move-column-left; } - - Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; } - Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; } - - ${genArrowNavigation arrows} - ${genArrowNavigation homerow-arrows} - ${genWorkspacesNavigation letters} - ${genWorkspacesNavigation numbers} - } - ''; -} diff --git a/modules/home/desktop/niri/programs/fuzzel/default.nix b/modules/home/desktop/niri/programs/fuzzel/default.nix deleted file mode 100644 index 0758613..0000000 --- a/modules/home/desktop/niri/programs/fuzzel/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - lib, -}: { - enable = true; - settings = { - main = { - terminal = "$TERMINAL -e"; - fields = "filename,name,generic,keywords,categories,exec"; - dpi-aware = false; - width = 20; - horizontal-pad = 12; - vertical-pad = 12; - show-actions = true; - match-mode = "fuzzy"; - icon-theme = config.dconf.settings."org/gnome/desktop/interface".icon-theme; - }; - border = lib.mkDefault { - width = 3; - radius = 12; - }; - }; -} diff --git a/modules/home/desktop/niri/programs/walker/default.nix b/modules/home/desktop/niri/programs/walker/default.nix deleted file mode 100644 index 08f772a..0000000 --- a/modules/home/desktop/niri/programs/walker/default.nix +++ /dev/null @@ -1,305 +0,0 @@ -{ - config, - pkgs, - ... -}: { - enable = true; - package = pkgs.walker; - runAsService = true; - config = { - activation_mode.labels = "neiotsra"; - as_window = false; - disabled = [ - "bookmarks" - "clipboard" - "custom_commands" - "translation" - "websearch" - ]; - builtins = { - applications = { - actions.enabled = true; - context_aware = true; - name = "applications"; - placeholder = "Applications"; - prioritize_new = true; - refresh = true; - show_generic = true; - show_icon_when_single = true; - show_sub_when_single = true; - weight = 10; - }; - calc = { - icon = "accessories-calculator"; - min_chars = 4; - name = "calc"; - placeholder = "Calculator"; - weight = 5; - }; - clipboard = { - image_height = 300; - max_entries = 10; - name = "clipboard"; - placeholder = "Clipboard"; - switcher_only = true; - weight = 5; - }; - commands = { - icon = "utilities-terminal"; - name = "commands"; - placeholder = "Commands"; - switcher_only = true; - weight = 8; - }; - custom_commands = { - icon = "utilities-terminal"; - name = "custom_commands"; - placeholder = "Custom Commands"; - weight = 5; - }; - dmenu = { - name = "dmenu"; - placeholder = "Dmenu"; - switcher_only = true; - weight = 5; - }; - emojis = { - history = true; - name = "emojis"; - placeholder = "Emojis"; - switcher_only = true; - typeahead = true; - weight = 5; - }; - finder = { - concurrency = 8; - icon = "folder"; - ignore_gitignore = true; - name = "finder"; - placeholder = "Finder"; - refresh = true; - switcher_only = true; - weight = 5; - }; - runner = { - generic_entry = false; - history = true; - icon = "utilities-terminal"; - name = "runner"; - placeholder = "Runner"; - refresh = true; - typeahead = true; - weight = 5; - }; - ssh = { - history = true; - icon = "preferences-system-network"; - name = "ssh"; - placeholder = "SSH"; - refresh = true; - switcher_only = true; - weight = 5; - }; - switcher = { - name = "switcher"; - placeholder = "Switcher"; - prefix = "/"; - weight = 5; - }; - websearch = { - icon = "applications-internet"; - name = "websearch"; - placeholder = "Websearch"; - weight = 5; - }; - windows = { - icon = "view-restore"; - name = "windows"; - placeholder = "Windows"; - weight = 10; - }; - }; - disable_click_to_close = false; - force_keyboard_focus = true; - list = { - max_entries = 50; - show_initial_entries = true; - single_click = true; - }; - search = { - delay = 0; - force_keyboard_focus = true; - history = true; - placeholder = "Search..."; - }; - }; - theme = { - layout = { - ui = { - anchors = { - bottom = false; - left = false; - right = false; - top = false; - }; - window = { - h_align = "center"; - v_align = "center"; - box = { - h_align = "center"; - v_align = "center"; - orientation = "vertical"; - search = { - h_align = "top"; - margins = { - start = 3; - top = 3; - end = 3; - bottom = 3; - }; - }; - scroll = { - overlay_scrolling = true; - list = { - margins = { - bottom = 3; - top = 0; - start = 3; - end = 3; - }; - item = { - icon.theme = "${config.gtk.iconTheme.name}"; - spacing = 3; - activation_label = { - x_align = 0.5; - y_align = 0.5; - width = 32; - }; - text = { - h_align = "start"; - h_expand = true; - revert = true; - wrap = true; - }; - }; - }; - }; - }; - }; - }; - }; - style = let - inherit (config.lib.stylix) colors; - in '' - @define-color base00 #${colors.base00}; - @define-color base01 #${colors.base01}; - @define-color base02 #${colors.base02}; - @define-color base03 #${colors.base03}; - @define-color base04 #${colors.base04}; - @define-color base05 #${colors.base05}; - @define-color base06 #${colors.base06}; - @define-color base07 #${colors.base07}; - @define-color base08 #${colors.base08}; - @define-color base09 #${colors.base09}; - @define-color base0A #${colors.base0A}; - @define-color base0B #${colors.base0B}; - @define-color base0C #${colors.base0C}; - @define-color base0D #${colors.base0D}; - @define-color base0E #${colors.base0E}; - @define-color base0F #${colors.base0F}; - - #window, - #box, - #search, - #password, - #input, - #typeahead, - #spinner, - #list, - child, - scrollbar, - slider, - #item, - #text, - #label, - #sub, - #activationlabel { - all: unset; - } - - #window { - background: @base00; - color: @base05; - border-radius: 12px; - border: 1px solid @base0D; - } - - #box { - background: @base00; - } - - #search { - background: @base01; - border-radius: 9px; - padding: 8px; - } - - #password, - #input, - #typeahead { - background: none; - box-shadow: none; - border-radius: 6px; - } - - #input > *:first-child, - #typeahead > *:first-child { - margin-right: 3px; - border-radius: 0px; - } - - #typeahead { - color: @base05; - } - - #input placeholder { - opacity: 0.5; - } - - #list { - padding: 3px; - border-radius: 9px; - background: @base01; - } - - child { - box-shadow: none; - } - - child:selected, - child:hover { - box-shadow: none; - border-radius: 6px; - background: @base02; - } - - #item { - padding: 4px; - } - - #sub { - font-size: smaller; - opacity: 0.5; - } - - #activationlabel { - opacity: 0.5; - } - - .activation #activationlabel { - opacity: 1; - color: @base05; - } - ''; - }; -} diff --git a/modules/home/desktop/niri/programs/waybar/default.nix b/modules/home/desktop/niri/programs/waybar/default.nix deleted file mode 100644 index f7e8250..0000000 --- a/modules/home/desktop/niri/programs/waybar/default.nix +++ /dev/null @@ -1,406 +0,0 @@ -{ - config, - lib, - osConfig, - pkgs, - launcher, - ... -}: let - ifLaptop = lib.mkIf (osConfig.networking.hostName != "dunamis"); -in { - enable = true; - systemd = { - enable = true; - target = "graphical-session.target"; - }; - settings.bottom = { - position = "bottom"; - height = 34; - spacing = 0; - margin-left = 36 + 3; - margin-right = 36 + 3; - margin-bottom = 3; - modules-left = [ - # "custom/launcher" - "niri/language" - "niri/workspaces" - # "wlr/taskbar" - ]; - modules-center = [ - "clock" - ]; - modules-right = [ - "privacy" - "network" - "cpu" - "memory" - "wireplumber" - "wireplumber#source" - (ifLaptop "group/laptop") - "tray" - "idle_inhibitor" - "custom/notification" - ]; - "niri/workspaces" = { - format = "{index}"; - }; - "niri/language" = { - format = "{short}"; - # format-en = "🇺🇸"; - # format-uk = "🇺🇦"; - }; - clock = { - format = "{:%R}"; - interval = 1; - tooltip = true; - tooltip-format = "{:%B %d, %A}"; - }; - "custom/launcher" = { - format = ""; - on-click = launcher; - tooltip = false; - }; - "wlr/taskbar" = { - format = "{icon}"; - icon-size = 16; - icon-theme = "${config.dconf.settings."org/gnome/desktop/interface".icon-theme}"; - tooltip-format = "{title}"; - on-click = "activate"; - }; - "group/laptop" = { - orientation = "inherit"; - modules = [ - "backlight" - "battery" - "power-profiles-daemon" - ]; - }; - backlight = { - format = "{percent}% {icon}"; - format-icons = [ - "󰃚" - "󰃛" - "󰃜" - "󰃝" - "󰃞" - "󰃟" - "󰃠" - ]; - }; - idle_inhibitor = { - tooltip = false; - format = "{icon}"; - format-icons = { - activated = "󰅶"; - deactivated = "󰾪"; - }; - }; - tray = { - icon-size = 16; - spacing = 6; - }; - battery = { - states = { - good = 95; - warning = 30; - critical = 15; - }; - format = "{capacity}% {icon}"; - format-full = "{capacity}% 󱟢"; - format-charging = "{capacity}% 󰂄"; - format-plugged = "{capacity}% 󰚥"; - format-alt = "{icon} {time}"; - format-icons = ["󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹"]; - }; - memory = { - format = "{used:0.1f}G "; - tooltip-format = '' - RAM: {used:0.1f}G/{total:0.1f}G ({percentage}%) - Swap: {swapUsed:0.1f}G/{swapTotal:0.1f}G ({swapPercentage}%)''; - }; - network = { - format = "{bandwidthDownBits} 󰇚 | {bandwidthUpBits} 󰕒"; - interval = 3; - tooltip = false; - }; - cpu = { - format = "{usage}% 󰍛"; - interval = 3; - }; - power-profiles-daemon = { - format = "{icon}"; - tooltip = true; - tooltip-format = "Power profile: {profile}\nDriver: {driver}"; - format-icons = { - default = "󱡮"; - performance = "󱡮"; - balanced = ""; - power-saver = ""; - }; - }; - wireplumber = { - format = "{volume}% {icon}"; - format-muted = "󰖁"; - format-icons = ["󰕿" "󰖀" "󰕾"]; - on-click = lib.getExe pkgs.pwvucontrol; - on-click-right = "wpctl set-mute @DEFAULT_SINK@ toggle"; - scroll-step = 3; - }; - "wireplumber#source" = { - node-type = "Audio/Source"; - format = "{volume}% 󰍬"; - format-muted = "󰍭"; - on-click-right = "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; - scroll-step = 3; - }; - "custom/notification" = { - tooltip = false; - format = "{icon}"; - format-icons = { - notification = "󱅫"; - none = "󰂚"; - dnd-notification = "󰂛"; - dnd-none = "󰂛"; - }; - return-type = "json"; - exec = - pkgs.writeShellApplication { - name = "xfce-notifyd-waybar"; - runtimeInputs = with pkgs; [sqlite xfce.xfconf coreutils]; - text = - # bash - '' - is_dnd=$(xfconf-query -c xfce4-notifyd -p /do-not-disturb) - notifications_count=$(sqlite3 ~/.cache/xfce4/notifyd/log.sqlite "SELECT count(*) FROM notifications WHERE NOT is_read") - - if [[ "$notifications_count" -ne 0 ]]; then - icon="notification" - else - icon="none" - fi - - if [[ "$is_dnd" == "true" ]]; then - icon="dnd-$icon" - fi - - printf '{"text": "%s", "alt": "%s"}' "$notifications_count" "$icon" - ''; - } - + "/bin/xfce-notifyd-waybar"; - on-click = "xfconf-query -c xfce4-notifyd -p /do-not-disturb -T"; - on-click-right = lib.getExe pkgs.xfce.xfce4-notifyd; - escape = true; - signal = 1; - }; - "privacy" = { - icon-spacing = 0; - icon-size = 16; - transition-duration = 250; - screenshare = { - type = "screenshare"; - tooltip = true; - tooltip-icon-size = 24; - }; - audio-in = { - type = "audio-in"; - tooltip = true; - tooltip-icon-size = 24; - }; - }; - }; - - # TODO: figure out magic waybar css styling (does it pick up `~/.config/gtk-3.0/gtk.css` ?) - style = let - colors = config.lib.stylix.colors.withHashtag; - in - # css - '' - @define-color base00 ${colors.base00}; @define-color base08 ${colors.base08}; - @define-color base01 ${colors.base01}; @define-color base09 ${colors.base09}; - @define-color base02 ${colors.base02}; @define-color base0A ${colors.base0A}; - @define-color base03 ${colors.base03}; @define-color base0B ${colors.base0B}; - @define-color base04 ${colors.base04}; @define-color base0C ${colors.base0C}; - @define-color base05 ${colors.base05}; @define-color base0D ${colors.base0D}; - @define-color base06 ${colors.base06}; @define-color base0E ${colors.base0E}; - @define-color base07 ${colors.base07}; @define-color base0F ${colors.base0F}; - - * { - font-family: Symbols Nerd Font, FontAwesome, ${config.stylix.fonts.sansSerif.name}; - font-size: 16px; - font-weight: 500; - } - - .modules-left, - .modules-center, - .modules-right, - window#waybar { - background-color: @base00; - color: @base05; - border-radius: 12px; - } - window#waybar { - border: 1px solid @base01; - } - - .modules-left, - .modules-center, - .modules-right { - margin: 1px; - padding-left: 3px; - } /* for leftmost modules */ - - button { - border-radius: 6px; - box-shadow: inset 0 -3px transparent; - } - - button:hover { - background: inherit; - box-shadow: inset 0 -3px transparent; - } - - label:focus { - background-color: #000000; - } - - tooltip label { - color: @base05; - } - - tooltip { - background: @base01; - border: 1px solid @base0D; - border-radius: 16px; - padding: 2em; - } - - window#bottom.modules-center { - background-color: transparent - } - - #backlight, - #battery, - #clock, - #cpu, - #custom-launcher, - #custom-notification, - #idle_inhibitor, - #language, - #memory, - #network, - #power-profiles-daemon, - #privacy, - #privacy-item, - #taskbar button, - #taskbar, - #tray, - #wireplumber, - #workspaces button, - #workspaces { - all: unset; - border-radius: 9px; - background-color: @base01; - margin: 3px 3px 3px 0; - padding: 0 0.42em; - } - #clock { - background-color: @base00; - } - - #backlight, - #battery, - #custom-launcher, - #custom-notification, - #idle_inhibitor, - #power-profiles-daemon, - #wireplumber { - padding: 0 0.5em; - } - - #battery.critical:not(.charging) { - background-color: @base09; - color: @base00; - } - - #custom-launcher, - #custom-notification, - #idle_inhibitor, - #language, - #power-profiles-daemon { - padding: 0; - min-width: 1.7em; - } - - #power-profiles-daemon.performance { - background-color: @base0D; - color: @base00; - } - - #power-profiles-daemon.power-saver { - background-color: @base0A; - color: @base00; - } - - #privacy, - #taskbar, - #workspaces { - padding: 0; - } - - #privacy-item, - #taskbar button, - #workspaces button { - border-radius: 6px; - min-width: 1.35em; - padding: 0; - } - - #privacy-item.audio-in { - background-color: @base0E; - color: @base00; - margin: 3px; - } - - #privacy-item.screenshare { - background-color: @base0C; - color: @base00; - margin-right: 0; - } - - #taskbar button { - padding: 0 0.4em; - margin: 3px 3px 3px 0; - } - - #taskbar button.active, - #workspaces button.active { - background-color: @base02; - } - - #taskbar button.active:hover, - #taskbar button:hover, - #workspaces button:hover, - #workspaces button.active:hover { - background-color: @base0D; - color: @base00; - } - - #taskbar.empty { - background-color: transparent; - } - - #tray>.needs-attention { - -gtk-icon-effect: highlight; - background-color: @base08; - } - - #tray>.passive { - -gtk-icon-effect: dim; - } - - #taskbar, - #workspaces { - padding-left: 3px; - } - ''; -} diff --git a/modules/home/desktop/niri/services/default.nix b/modules/home/desktop/niri/services/default.nix deleted file mode 100644 index be7aadc..0000000 --- a/modules/home/desktop/niri/services/default.nix +++ /dev/null @@ -1,59 +0,0 @@ -{ - config, - lib, - lockscreen, - osConfig, - pkgs, - ... -}: -lib.attrsets.recursiveUpdate { - blueman-applet.enable = osConfig.services.blueman.enable; - copyq.enable = true; - gammastep.enable = true; - gnome-keyring.enable = true; - hypridle.enable = true; - kanshi = import ./kanshi; - network-manager-applet.enable = true; - playerctld.enable = true; - # swaync = import ./swaync; - swayosd.enable = true; - udiskie.enable = true; - # vicinae = import ./vicinae; - wpaperd.enable = true; -} -{ - gammastep = { - provider = "manual"; - latitude = 49.6; - longitude = 36.1; - tray = true; - temperature = { - day = 6500; - night = 3000; - }; - }; - gnome-keyring.components = ["secrets"]; - hypridle.settings = { - general = { - before_sleep_cmd = "loginctl lock-session"; - lock_cmd = "pidof ${lockscreen} || ${lockscreen}"; - # unlock_cmd = "loginctl unlock-session"; - }; - listener = [ - { - timeout = 600; - on-timeout = "pidof ${lockscreen} || ${lockscreen}"; - } - { - timeout = 601; - on-timeout = lib.getExe pkgs.niri + " msg action power-off-monitors"; - } - ]; - }; - swayosd.topMargin = 0.8; - udiskie = { - automount = false; - notify = true; - tray = "auto"; - }; -} diff --git a/modules/home/desktop/niri/services/kanshi/default.nix b/modules/home/desktop/niri/services/kanshi/default.nix deleted file mode 100644 index 2ecb525..0000000 --- a/modules/home/desktop/niri/services/kanshi/default.nix +++ /dev/null @@ -1,139 +0,0 @@ -{ - enable = true; - settings = let - main = "Philips Consumer Electronics Company 27M2N5500 UK02418033254"; - second = "Samsung Electric Company S24R65x H4TMA03291"; - builtin = { - eldrid = "Chimei Innolux Corporation 0x1406 Unknown"; - sarien = "LG Display 0x068B Unknown"; - kled = "BOE 0x095F Unknown"; - # morphius =; - }; - in [ - { - output = { - criteria = main; - position = "0,0"; - scale = 4.0 / 3.0; - adaptiveSync = true; - }; - } - { - output = { - criteria = second; - mode = "1920x1080@74.973"; - adaptiveSync = true; - }; - } - { - output = { - criteria = builtin.eldrid; - position = "0,0"; - scale = 1.2; - # adaptiveSync = true; - }; - } - { - output = { - criteria = builtin.sarien; - position = "0,0"; - scale = 1.25; - # adaptiveSync = true; - }; - } - { - output = { - criteria = builtin.kled; - position = "0,0"; - scale = 4.0 / 3.0; - # adaptiveSync = true; - }; - } - { - profile = { - name = "dunamis"; - outputs = [{criteria = main;}]; - }; - } - { - profile = { - name = "dunamis-twomon"; - outputs = [ - {criteria = main;} - { - criteria = second; - position = "1920,180"; - scale = 1.2; - # transform = "90"; - adaptiveSync = true; - } - ]; - }; - } - { - profile = { - name = "eldrid-docked"; - outputs = [ - { - criteria = main; - position = "0,0"; - scale = 4.0 / 3.0; - } - { - criteria = builtin.eldrid; - position = "1920,0"; - } - ]; - }; - } - { - profile = { - name = "eldrid-undocked"; - outputs = [ - { - criteria = builtin.eldrid; - position = "0,0"; - } - ]; - }; - } - { - profile = { - name = "sarien-docked"; - outputs = [ - { - criteria = main; - position = "0,0"; - scale = 4.0 / 3.0; - } - { - criteria = builtin.sarien; - position = "1920,0"; - } - ]; - }; - } - { - profile = { - name = "kled"; - outputs = [ - { - criteria = builtin.kled; - position = "0,0"; - } - ]; - }; - } - { - profile = { - name = "sarien-undocked"; - outputs = [ - { - criteria = builtin.sarien; - position = "0,0"; - } - ]; - }; - } - ]; -} diff --git a/modules/home/desktop/niri/services/swaync/default.nix b/modules/home/desktop/niri/services/swaync/default.nix deleted file mode 100644 index 53969eb..0000000 --- a/modules/home/desktop/niri/services/swaync/default.nix +++ /dev/null @@ -1,178 +0,0 @@ -{ - enable = true; - settings = { - cssPriority = "user"; - image-visibility = "when-available"; - keyboard-shortcut = true; - relative-timestamps = true; - timeout = 5; - timeout-low = 5; - timeout-critical = 0; - script-fail-notify = true; - transition-time = 200; - - # Layer settings - layer-shell = true; - layer = "overlay"; - control-center-layer = "overlay"; - - # Notification settings - positionX = "left"; - positionY = "top"; - notification-2fa-action = true; - notification-inline-replies = false; - notification-icon-size = 48; - notification-body-image-height = 100; - notification-body-image-width = 200; - notification-window-width = 400; - - # Control center settings - control-center-positionX = "left"; - control-center-positionY = "top"; - control-center-width = 500; - control-center-exclusive-zone = true; - fit-to-screen = true; - hide-on-action = true; - hide-on-clear = false; - - # Widget settings - widgets = [ - "title" - "dnd" - "notifications" - "mpris" - ]; - - widget-config = { - title = { - text = "Notifications"; - clear-all-button = true; - button-text = "Clear All"; - }; - dnd = { - text = "Do Not Disturb"; - }; - mpris = { - image-size = 96; - image-radius = 12; - blur = true; - }; - }; - }; - # TODO: disable stylix, redo everything - style = '' - * { - all: unset; - } - - progress, - progressbar, - trough { - border-radius: 16px; - } - - .app-icon, - .image { - -gtk-icon-effect: none; - padding-right: 0.5rem; - } - - .notification-action { - border-radius: 9px; - margin: 3px; - } - - .close-button { - margin: 12px; - border-radius: 6px; - } - - .notification-group.collapsed - .notification-row:not(:last-child) - .notification-action, - .notification-group.collapsed - .notification-row:not(:last-child) - .notification-default-action { - opacity: 0; - } - - .trough { - margin: 4px; - border-radius: 7px; - } - - .notification, - .notification.low, - .notification.normal, - .notification.critical, - .control-center { - border-radius: 12px; - margin: 6px; - } - - .floating-notifications, - .notification-content { - padding: 0.5rem; - margin: 3px; - border-radius: 9px; - } - - .control-center-list { - background: transparent; - } - - .widget-title { - margin: 0.5rem; - } - - .widget-title > label { - font-weight: bold; - } - - .widget-title > button { - border-radius: 9px; - padding: 0.5rem; - } - - .widget-dnd { - margin: 0.5rem; - } - - .widget-dnd > label { - font-weight: bold; - } - - .widget-dnd > switch { - border-radius: 9px; - } - - .widget-dnd > switch slider { - margin: 3px; - border-radius: 6px; - padding: 0px; - } - - .widget-mpris .widget-mpris-player { - border-radius: 12px; - margin: 0.5rem; - padding: 0.5rem; - } - - .widget-mpris .widget-mpris-player .widget-mpris-album-art { - border-radius: 9px; - } - - .widget-mpris .widget-mpris-player .widget-mpris-title { - font-weight: bold; - } - - .widget-mpris .widget-mpris-player .widget-mpris-subtitle { - font-weight: normal; - } - - .widget-mpris .widget-mpris-player > box > button { - border-radius: 6px; - padding: 3px; - } - ''; -} diff --git a/modules/home/desktop/niri/services/vicinae/default.nix b/modules/home/desktop/niri/services/vicinae/default.nix deleted file mode 100644 index 31999c5..0000000 --- a/modules/home/desktop/niri/services/vicinae/default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - enable = true; - autoStart = true; -} diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index bca2027..7ce679a 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -4,7 +4,6 @@ ./cosmic ./dms ./gnome - # ./niri # ./plasma ]; } diff --git a/modules/nixos/desktop/niri/default.nix b/modules/nixos/desktop/niri/default.nix deleted file mode 100644 index 94b38c4..0000000 --- a/modules/nixos/desktop/niri/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - config, - inputs, - lib, - perSystem, - pkgs, - ... -}: let - inherit (lib) mkIf mkEnableOption; - cfg = config.desktop.niri; -in { - options = { - desktop.niri.enable = - mkEnableOption "enable niri desktop"; - }; - config = lib.mkMerge [ - (mkIf cfg.enable { - module.desktop.displayManager = "greetd"; - module.gnome-keyring.enable = true; - module.pipewire.enable = true; - - # nixpkgs.overlays = [inputs.niri.overlays.default]; - - programs.niri.enable = true; # wayland compositor in rust - programs.niri.package = perSystem.niri-flake.niri-unstable; - - environment.variables = { - NIXOS_OZONE_WL = "1"; - }; - security = { - pam.services.gtklock = {}; - soteria.enable = true; # polkit agent in rust - }; - services = { - blueman.enable = config.hardware.bluetooth.enable; - gvfs.enable = true; - }; - xdg.portal = { - enable = true; - extraPortals = with pkgs; [xdg-desktop-portal-gnome xdg-desktop-portal-gtk]; - config.niri.default = ["gnome" "gtk"]; - }; - }) - (mkIf (cfg.enable - && config.services.displayManager.autoLogin.enable) { - services.greetd.settings.initial_session = { - command = "niri-session"; - user = config.services.displayManager.autoLogin.user; - }; - }) - ]; -}