diff --git a/home/browsers/firefox/chrome/theme/hide.css b/home/browsers/firefox/chrome/theme/hide.css index 938830c..ba7e3ca 100644 --- a/home/browsers/firefox/chrome/theme/hide.css +++ b/home/browsers/firefox/chrome/theme/hide.css @@ -5,3 +5,11 @@ .bookmark-item[container] { list-style-image: url("chrome://global/skin/dirListing/folder.png") !important; } + +#toolbar-menubar { + display: none !important; +} + +#menubar-items { + visibility: hidden !important; +} diff --git a/home/systemd/default.nix b/home/systemd/default.nix index cd14fbf..2e39d7a 100644 --- a/home/systemd/default.nix +++ b/home/systemd/default.nix @@ -80,24 +80,24 @@ # }; # }; - systemd.user.services.input-leap = { - Unit = { - Description = "Autostart Input Leap"; - After = [ "graphical-session.target" ]; - }; + # systemd.user.services.input-leap = { + # Unit = { + # Description = "Autostart Input Leap"; + # After = [ "graphical-session.target" ]; + # }; - Service = { - Type = "oneshot"; - RemainAfterExit = true; - PassEnvironment = "DISPLAY"; - ExecStart = "${pkgs.writeShellScript "input-leap-start" '' - sleep 5 - ${pkgs.input-leap}/bin/input-leap - ''}"; - }; + # Service = { + # Type = "oneshot"; + # RemainAfterExit = true; + # PassEnvironment = "DISPLAY"; + # ExecStart = "${pkgs.writeShellScript "input-leap-start" '' + # sleep 5 + # ${pkgs.input-leap}/bin/input-leap + # ''}"; + # }; - Install = { - WantedBy = [ "graphical-session.target" ]; - }; - }; + # Install = { + # WantedBy = [ "graphical-session.target" ]; + # }; + # }; } diff --git a/home/terminal/nvim/default.nix b/home/terminal/nvim/default.nix index 03ba2b8..6afb56b 100644 --- a/home/terminal/nvim/default.nix +++ b/home/terminal/nvim/default.nix @@ -82,10 +82,6 @@ enable = true; autoLoad = true; }; - copilot-lua = { - enable = true; - autoLoad = true; - }; conform-nvim = { enable = true; autoLoad = true; diff --git a/home/tiling/niri/config/config.kdl b/home/tiling/niri/config/config.kdl index 29add73..82d0769 100644 --- a/home/tiling/niri/config/config.kdl +++ b/home/tiling/niri/config/config.kdl @@ -1,27 +1,5 @@ -// This config is in the KDL format: https://kdl.dev -// "/-" comments out the following node. -// Check the wiki for a full description of the configuration: -// https://yalter.github.io/niri/Configuration:-Introduction - -// Input device configuration. -// Find the full list of options on the wiki: -// https://yalter.github.io/niri/Configuration:-Input input { keyboard { - xkb { - // You can set rules, model, layout, variant and options. - // For more information, see xkeyboard-config(7). - - // For example: - // layout "us,ru" - // options "grp:win_space_toggle,compose:ralt,ctrl:nocaps" - - // If this section is empty, niri will fetch xkb settings - // from org.freedesktop.locale1. You can control these using - // localectl set-x11-keymap. - } - - // Enable numlock on startup, omitting this setting disables it. numlock } @@ -42,35 +20,16 @@ input { // disabled-on-external-mouse } - mouse { - // off - // natural-scroll - // accel-speed 0.2 - // accel-profile "flat" - // scroll-method "no-scroll" - } - - trackpoint { - // off - // natural-scroll - // accel-speed 0.2 - // accel-profile "flat" - // scroll-method "on-button-down" - // scroll-button 273 - // scroll-button-lock - // middle-emulation - } - - // Uncomment this to make the mouse warp to the center of newly focused windows. - // warp-mouse-to-focus - // Focus windows and outputs automatically when moving the mouse into them. // Setting max-scroll-amount="0%" makes it work only on windows already fully on screen. focus-follows-mouse max-scroll-amount="0%" } overview { - backdrop-color "#181825" + backdrop-color "#11111b" + workspace-shadow { + off + } } // Disable the hot corners. @@ -80,13 +39,26 @@ gestures { } } +environment { + QT_QPA_PLATFORM "wayland" + DISPLAY null +} + +cursor { + xcursor-theme "catppuccin-mocha-dark-cursors" + xcursor-size 24 + + hide-when-typing + hide-after-inactive-ms 1000 +} + // You can configure outputs by their name, which you can find // by running `niri msg outputs` while inside a niri instance. // The built-in laptop monitor is usually called "eDP-1". // Find more information on the wiki: // https://yalter.github.io/niri/Configuration:-Outputs // Remember to uncomment the node by removing "/-"! -/-output "eDP-1" { +output "eDP-1" { // Uncomment this line to disable this output. // off @@ -96,10 +68,10 @@ gestures { // for the resolution. // If the mode is omitted altogether or is invalid, niri will pick one automatically. // Run `niri msg outputs` while inside a niri instance to list all outputs and their modes. - mode "1920x1080@120.030" + // mode "1920x1080@120.030" // You can use integer or fractional scale, for example use 1.5 for 150% scale. - scale 2 + scale 1.75 // Transform allows to rotate the output counter-clockwise, valid values are: // normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270. @@ -114,13 +86,45 @@ gestures { // so to put another output directly adjacent to it on the right, set its x to 1920. // If the position is unset or results in an overlap, the output is instead placed // automatically. - position x=1280 y=0 + // position x=1280 y=0 +} + +output "HDMI-A-1" { + // Uncomment this line to disable this output. + // off + + // Resolution and, optionally, refresh rate of the output. + // The format is "x" or "x@". + // If the refresh rate is omitted, niri will pick the highest refresh rate + // for the resolution. + // If the mode is omitted altogether or is invalid, niri will pick one automatically. + // Run `niri msg outputs` while inside a niri instance to list all outputs and their modes. + // mode "1920x1080@120.030" + + // You can use integer or fractional scale, for example use 1.5 for 150% scale. + scale 1.75 + + // Transform allows to rotate the output counter-clockwise, valid values are: + // normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270. + transform "normal" + + // Position of the output in the global coordinate space. + // This affects directional monitor actions like "focus-monitor-left", and cursor movement. + // The cursor can only move between directly adjacent outputs. + // Output scale and rotation has to be taken into account for positioning: + // outputs are sized in logical, or scaled, pixels. + // For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080, + // so to put another output directly adjacent to it on the right, set its x to 1920. + // If the position is unset or results in an overlap, the output is instead placed + // automatically. + // position x=1280 y=0 } // Settings that influence how windows are positioned and sized. // Find more information on the wiki: // https://yalter.github.io/niri/Configuration:-Layout layout { + background-color "#181825" // Set gaps around windows in logical pixels. gaps 4 @@ -164,42 +168,8 @@ layout { // Alternatively, you can override it with a window rule called // `draw-border-with-background`. - // You can change how the focus ring looks. focus-ring { - // Uncomment this line to disable the focus ring. - off - - // How many logical pixels the ring extends out from the windows. - width 1 - - // Colors can be set in a variety of ways: - // - CSS named colors: "red" - // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" - // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. - - // Color of the ring on the active monitor. - active-color "#a6e3a1" - - // Color of the ring on inactive monitors. - // - // The focus ring only draws around the active window, so the only place - // where you can see its inactive-color is on other monitors. - inactive-color "#313244" - - // You can also use gradients. They take precedence over solid colors. - // Gradients are rendered the same as CSS linear-gradient(angle, from, to). - // The angle is the same as in linear-gradient, and is optional, - // defaulting to 180 (top-to-bottom gradient). - // You can use any CSS linear-gradient tool on the web to set these up. - // Changing the color space is also supported, check the wiki for more info. - // - // active-gradient from="#80c8ff" to="#c7ff7f" angle=45 - - // You can also color the gradient relative to the entire view - // of the workspace, rather than relative to just the window itself. - // To do that, set relative-to="workspace-view". - // - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" + off } // You can also add a border. It's similar to the focus ring, but always visible. @@ -208,9 +178,11 @@ layout { // If you enable the border, you probably want to disable the focus ring. // off - width 2 - active-color "#a6e3a1" + width 1 + active-color "#6c7086" + // active-gradient from="#fab387" to="#89b4fa" angle=90 inactive-color "#313244" + // inactive-gradient from="#313244" to="#6c7086" angle=90 // Color of the border around windows that request your attention. urgent-color "#eba0ac" @@ -225,7 +197,7 @@ layout { // You can enable drop shadows for windows. shadow { // Uncomment the next line to enable shadows. - // on + on // By default, the shadow draws only around its window, and not behind it. // Uncomment this setting to make the shadow draw behind its window. @@ -256,7 +228,7 @@ layout { offset x=0 y=5 // You can also change the shadow color and opacity. - color "#11111b77" + color "#1e1e2e77" } // Struts shrink the area occupied by windows, similarly to layer-shell panels. @@ -278,17 +250,17 @@ layout { // See the binds section below for more spawn examples. // This line starts waybar, a commonly used bar for Wayland compositors. -// spawn-at-startup "waybar" +spawn-at-startup "waybar" -// Instead let's start quickshell, which is similar but made with QT/QML -spawn-at-startup "quickshell" +// Instead let's start quickshell, which is similar but made with Qt/QML +// spawn-at-startup "quickshell" // To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup: // spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell" hotkey-overlay { // Uncomment this line to disable the "Important Hotkeys" pop-up at startup. - // skip-at-startup + skip-at-startup } // Uncomment this line to ask the clients to omit their client-side decorations if possible. @@ -296,7 +268,7 @@ hotkey-overlay { // Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. // This option will also fix border/focus ring drawing behind some semitransparent windows. // After enabling or disabling this, you need to restart the apps for this to take effect. -// prefer-no-csd +prefer-no-csd // You can change the path where screenshots are saved. // A ~ at the front will be expanded to the home directory. @@ -321,16 +293,6 @@ animations { // Find more information on the wiki: // https://yalter.github.io/niri/Configuration:-Window-Rules -// Work around WezTerm's initial configure bug -// by setting an empty default-column-width. -window-rule { - // This regular expression is intentionally made as specific as possible, - // since this is the default config, and we want no false positives. - // You can get away with just app-id="wezterm" if you want. - match app-id=r#"^org\.wezfurlong\.wezterm$"# - default-column-width {} -} - // Open the Firefox picture-in-picture player as floating by default. window-rule { // This app-id regular expression will work for both: @@ -338,6 +300,7 @@ window-rule { // - Flatpak Firefox (app-id is "org.mozilla.firefox") match app-id=r#"firefox$"# title="^Picture-in-Picture$" open-floating true + default-floating-position x=32 y=32 relative-to="bottom-left" } // Example: block out two password managers from screen capture. @@ -355,10 +318,24 @@ window-rule { // Example: enable rounded corners for all windows. // (This example rule is commented out with a "/-" in front.) window-rule { - geometry-corner-radius 12 + geometry-corner-radius 8 clip-to-geometry true } +window-rule { + match app-id="openmw" title="OpenMW" + open-maximized true + focus-ring { + off + } + border { + off + } + shadow { + off + } +} + binds { // Keys consist of modifiers separated by + signs, followed by an XKB key name // in the end. To find an XKB name for a particular key, you may use a program @@ -387,8 +364,10 @@ binds { // Example volume keys mappings for PipeWire & WirePlumber. // The allow-when-locked=true property makes them work even when the session is locked. // Using spawn-sh allows to pass multiple arguments together with the command. - XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+"; } - XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } + XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+"; } + XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"; } + Shift+XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01+"; } + Shift+XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.01-"; } XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; } XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; } diff --git a/home/tiling/niri/default.nix b/home/tiling/niri/default.nix index 4066ac8..3140e01 100644 --- a/home/tiling/niri/default.nix +++ b/home/tiling/niri/default.nix @@ -13,6 +13,7 @@ in swaylock fuzzel xdg-desktop-portal + brightnessctl ]; home.file = { @@ -29,7 +30,7 @@ in }; ".config/fuzzel/fuzzel.ini" = { text = '' - include = ./colors.ini + include = /home/sckova/.config/fuzzel/colors.ini font = "NotoSansM Nerd Font Mono:size=10" terminal = "kitty" icons-enabled = yes diff --git a/home/tiling/niri/fuzzel.ini b/home/tiling/niri/fuzzel.ini deleted file mode 100644 index e69de29..0000000 diff --git a/home/tiling/quickshell/config/shell.qml b/home/tiling/quickshell/config/shell.qml index d4c325e..d250648 100644 --- a/home/tiling/quickshell/config/shell.qml +++ b/home/tiling/quickshell/config/shell.qml @@ -4,10 +4,9 @@ import QtQuick // for Text PanelWindow { anchors { - top: false + top: true left: true right: true - bottom: true } implicitHeight: 37 @@ -16,17 +15,17 @@ PanelWindow { Rectangle { anchors.fill: parent - color: "#1e1e2e" + color: "#000000" Text { id: clock - // center the bar in its parent component (the window) - anchors.centerIn: parent - anchors.right: parent + anchors.verticalCenter: parent.verticalCenter + anchors.right: parent.right + anchors.rightMargin: 10 color: "#cdd6f4" Process { id: dateProc - command: ["date"] + command: ["date", "+%a, %b %d @ %I:%M%P"] running: true stdout: StdioCollector { onStreamFinished: clock.text = this.text diff --git a/home/tiling/waybar/config/config.jsonc b/home/tiling/waybar/config/config.jsonc new file mode 100644 index 0000000..1272ad6 --- /dev/null +++ b/home/tiling/waybar/config/config.jsonc @@ -0,0 +1,87 @@ +{ + "layer": "top", + "spacing": 0, + "height": 42, + + "margin-top": 0, + "margin-right": 0, + "margin-bottom": 0, + "margin-left": 0, + + "modules-left": ["sway/workspaces"], + + "modules-center": [], + + "modules-right": [ + "tray", + "cpu_text", + "cpu", + "memory", + "battery", + "network", + "pulseaudio", + "custom/clock", + ], + + "sway/workspaces": { + "disable-scroll": true, + "all-outputs": true, + "tooltip": false, + }, + + "tray": { + "spacing": 10, + "tooltip": false, + }, + + "custom/clock": { + "exec": "/home/sckova/.config/waybar/scripts/clock.sh", + "restart-interval": 1, + "tooltip": false, + }, + + "cpu": { + "format": "cpu {usage}%", + "interval": 2, + + "states": { + "critical": 90, + }, + }, + + "memory": { + "format": "mem {percentage}%", + "interval": 2, + + "states": { + "critical": 80, + }, + }, + + "battery": { + "format": "bat {capacity}%", + "interval": 5, + "states": { + "warning": 20, + "critical": 10, + }, + "tooltip": false, + }, + + "network": { + "format-wifi": "wifi up", + "format-ethernet": "enth up", + "format-disconnected": "no network", + "tooltip": false, + }, + + "pulseaudio": { + "scroll-step": 5, + "max-volume": 150, + "format": "vol {volume}%", + "format-bluetooth": "vol {volume}%", + "nospacing": 1, + "on-click": "pavucontrol", + "tooltip": false, + }, +} diff --git a/home/tiling/waybar/config/mocha.css b/home/tiling/waybar/config/mocha.css new file mode 100644 index 0000000..0eb6a82 --- /dev/null +++ b/home/tiling/waybar/config/mocha.css @@ -0,0 +1,26 @@ +@define-color rosewater #f5e0dc; +@define-color flamingo #f2cdcd; +@define-color pink #f5c2e7; +@define-color mauve #cba6f7; +@define-color red #f38ba8; +@define-color maroon #eba0ac; +@define-color peach #fab387; +@define-color yellow #f9e2af; +@define-color green #a6e3a1; +@define-color teal #94e2d5; +@define-color sky #89dceb; +@define-color sapphire #74c7ec; +@define-color blue #89b4fa; +@define-color lavender #b4befe; +@define-color text #cdd6f4; +@define-color subtext1 #bac2de; +@define-color subtext0 #a6adc8; +@define-color overlay2 #9399b2; +@define-color overlay1 #7f849c; +@define-color overlay0 #6c7086; +@define-color surface2 #585b70; +@define-color surface1 #45475a; +@define-color surface0 #313244; +@define-color base #1e1e2e; +@define-color mantle #181825; +@define-color crust #11111b; diff --git a/home/tiling/waybar/config/scripts/clock.sh b/home/tiling/waybar/config/scripts/clock.sh new file mode 100755 index 0000000..8185d57 --- /dev/null +++ b/home/tiling/waybar/config/scripts/clock.sh @@ -0,0 +1 @@ +date +"%a, %b %d @ %I:%M%P" diff --git a/home/tiling/waybar/config/style.css b/home/tiling/waybar/config/style.css new file mode 100644 index 0000000..6a31bac --- /dev/null +++ b/home/tiling/waybar/config/style.css @@ -0,0 +1,101 @@ +@import "./mocha.css"; +* { + border: none; + border-radius: 0; + min-height: 0; + font-family: "Noto Sans"; + /*font-weight: bold;*/ + font-size: 12px; + padding: 0; +} + +window#waybar { + background: transparent; + border-bottom-color: @mantle; +} + +tooltip { + background-color: @crust; + border-color: @peach; +} + +#custom-clock, +#tray, +#cpu, +#memory, +#battery, +#network, +#pulseaudio { + background-color: @base; + color: @text; + border: 2px solid @text; + margin: 8px 6px 8px 0px; + padding: 2px 8px; + border-radius: 8px; +} + +#workspaces { + margin: 6px 0px 6px 6px; + border-color: #625343; +} + +#workspaces button { + all: initial; + min-width: 0; + box-shadow: inset 0 -3px transparent; + padding: 2px 4px; + color: #917a53; +} + +#workspaces button.focused { + color: #ddc7a1; +} + +#workspaces button.urgent { + background-color: #e78a4e; + color: #1d2021; +} + +#cpu { + border-color: @maroon; +} + +#memory { + border-color: @peach; +} + +#battery { + border-color: @green; +} + +#network { + border-color: @teal; +} + +#pulseaudio { + border-color: @blue; +} + +#custom-clock { + border-color: @lavender; +} + +#tray { + border-color: @blue; + color: @subtext0; +} + +#cpu.critical, +#memory.critical { + background-color: @base; + border-color: @red; + color: @subtext0; +} + +#battery.warning, +#battery.critical, +#battery.urgent { + background-color: #c9af82; + border-color: #917a53; + color: #ae6330; +} diff --git a/home/tiling/waybar/default.nix b/home/tiling/waybar/default.nix new file mode 100644 index 0000000..51a5665 --- /dev/null +++ b/home/tiling/waybar/default.nix @@ -0,0 +1,13 @@ +{ config, pkgs, ... }: + +{ + programs.waybar = { + enable = true; + }; + + home.file.".config/waybar" = { + source = ./config; + recursive = true; + force = true; + }; +} diff --git a/nohup.out b/nohup.out new file mode 100644 index 0000000..a245621 --- /dev/null +++ b/nohup.out @@ -0,0 +1,6 @@ +[2025-12-12 15:14:41.470] [info] Using configuration file /home/sckova/.config/waybar/config.jsonc +[2025-12-12 15:14:41.471] [info] Discovered appearance 'dark' +[2025-12-12 15:14:41.483] [info] Using CSS file /home/sckova/.config/waybar/style.css +[2025-12-12 15:14:41.490] [warning] module sway/workspaces: Disabling module "sway/workspaces", Socket path is empty +[2025-12-12 15:14:41.490] [warning] module cpu_text: Unknown module: cpu_text +[2025-12-12 15:14:41.602] [info] Bar configured (width: 1728, height: 40) for output: eDP-1 diff --git a/system/all.nix b/system/all.nix index 041b9e8..fabe5d8 100755 --- a/system/all.nix +++ b/system/all.nix @@ -29,6 +29,7 @@ ../home/browsers/firefox/default.nix ../home/tiling/niri/default.nix ../home/tiling/quickshell/default.nix + ../home/tiling/waybar/default.nix ../home/systemd/default.nix ../home/terminal/btop/default.nix ../home/terminal/fish/default.nix @@ -71,7 +72,6 @@ "rd.udev.log_level=3" "udev.log_priority=3" "boot.shell_on_fail" - "apple_dcp.show_notch=1" ]; consoleLogLevel = 0; initrd.verbose = false; @@ -83,9 +83,6 @@ cache.enable = true; }; - programs.nix-ld.enable = true; - programs.nix-ld.libraries = with pkgs; [ ]; - networking.networkmanager.enable = true; hardware.bluetooth.enable = true; @@ -108,6 +105,10 @@ enable = true; }; + programs.niri.enable = true; + services.gnome.gnome-keyring.enable = true; + security.pam.services.niri.enableGnomeKeyring = true; + services = { desktopManager.plasma6.enable = true; displayManager.sddm = { @@ -176,8 +177,6 @@ services.openssh.enable = true; networking.firewall.enable = false; - programs.niri.enable = true; - # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave diff --git a/system/hosts/peach/default.nix b/system/hosts/peach/default.nix index 506e6dc..97b45af 100644 --- a/system/hosts/peach/default.nix +++ b/system/hosts/peach/default.nix @@ -13,6 +13,8 @@ "riscv64-linux" ]; + boot.kernelParams = [ "apple_dcp.show_notch=1" ]; + catppuccin.accent = "peach"; home-manager.users.sckova = {