diff --git a/nix/configuration.nix b/nix/configuration.nix index 0f1ef62..8982c23 100644 --- a/nix/configuration.nix +++ b/nix/configuration.nix @@ -140,6 +140,11 @@ unzip obsidian lm_sensors + obs-studio + activitywatch + aw-watcher-window-wayland + aw-qt + aw-watcher-afk (callPackage ./anki-bin.nix {}) ]; @@ -199,7 +204,7 @@ allowUnfree = true; chromium = { enableWideVine = true; - commandLineArgs = "--enable-features=UseOzonePlatform --ozone-platform=wayland --force-dark-mode --enable-features=WebUIDarkMode"; + commandLineArgs = "--ozone-platform-hint=wayland --enable-features=WebUIDarkMode"; }; }; @@ -290,7 +295,7 @@ services.btrbk.instances.local = { onCalendar = "hourly"; settings = { - snapshot_preserve = "8w 12m"; + snapshot_preserve = "2w"; snapshot_preserve_min = "2d"; snapshot_dir = "/snapshots"; subvolume = { @@ -370,4 +375,9 @@ enable = true; enableZshIntegration = true; }; + + xdg.portal = { + enable = true; + wlr.enable = true; + }; } diff --git a/nix/flake.lock b/nix/flake.lock index d6e1dc9..f58d0e8 100644 --- a/nix/flake.lock +++ b/nix/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1733354384, - "narHash": "sha256-foZG2PLwumxYZkpXq7ajHDhuQlXaUeKfOpFfQpMviLM=", + "lastModified": 1733389730, + "narHash": "sha256-KZMu4ddMll5khS0rYkJsVD0hVqjMNHlhTM3PCQar0Ag=", "owner": "nix-community", "repo": "home-manager", - "rev": "0daaded612b0e6eaed0a63fc9d0778d8f05940fe", + "rev": "65912bc6841cf420eb8c0a20e03df7cbbff5963f", "type": "github" }, "original": { diff --git a/nix/home.nix b/nix/home.nix index 32c5dc2..89014f4 100644 --- a/nix/home.nix +++ b/nix/home.nix @@ -28,4 +28,8 @@ name = "Adwaita"; }; }; + + home.sessionVariables = { + ANKI_WAYLAND = "1"; + }; } diff --git a/nix/singlefile.nix b/nix/singlefile.nix new file mode 100644 index 0000000..817a255 --- /dev/null +++ b/nix/singlefile.nix @@ -0,0 +1,54 @@ +{ + lib, + stdenv, + buildNpmPackage, + fetchFromGitHub, + chromium, + python3, +}: +buildNpmPackage { + pname = "single-file-cli"; + version = "2.0.73"; + + src = fetchFromGitHub { + owner = "gildas-lormeau"; + repo = "single-file-cli"; + rev = "0b87ca9167f6cb2b036770d38e9b6bbfaf47abc5"; + hash = "sha256-fMedP+wp1crHUj9/MVyG8XSsl1PA5bp7/HL4k+X0TRg="; + }; + npmDepsHash = "sha256-nnOMBb9mHNhDejE3+Kl26jsrTRxSSg500q1iwwVUqP8="; + + nativeCheckInputs = [chromium]; + doCheck = stdenv.hostPlatform.isLinux; + + postBuild = '' + patchShebangs ./single-file + ''; + + checkPhase = '' + runHook preCheck + + ${python3}/bin/python -m http.server --bind 127.0.0.1 & + pid=$! + + ./single-file \ + --browser-headless \ + --browser-executable-path chromium-browser\ + http://127.0.0.1:8000 + + grep -F 'Page saved with SingleFile' 'Directory listing for'*.html + + kill $pid + wait + + runHook postCheck + ''; + + meta = { + description = "CLI tool for saving a faithful copy of a complete web page in a single HTML file"; + homepage = "https://github.com/gildas-lormeau/single-file-cli"; + license = lib.licenses.agpl3Only; + maintainers = with lib.maintainers; [n8henrie]; + mainProgram = "single-file"; + }; +} diff --git a/sway/config b/sway/config index ef01c67..b598fbc 100644 --- a/sway/config +++ b/sway/config @@ -6,9 +6,9 @@ set $up k set $right l set $term $HOME/.config/sway/scripts/terminal.sh -set $menu rofi -show drun | xargs swaymsg exec -- +set $menu rofi -show run set $screenshot grim -g "$(slurp)" - | wl-copy -set $browser librewolf +set $browser chromium set $clipboard rofi -show clipboard -show-icons set $emoji rofi -show emoji @@ -25,7 +25,8 @@ output * bg $wallpaper fill floating_modifier $mod normal default_border pixel smart_borders on -focus_follows_mouse yes +focus_follows_mouse always +mouse_warping container bindsym $mod+Return exec $term bindsym $mod+Ctrl+q kill @@ -38,11 +39,12 @@ bindsym $mod+period exec $emoji bindsym $mod+$alt+b exec $browser bindsym $mod+$alt+a exec anki -bindsym $mod+$alt+f exec dolphin +bindsym $mod+$alt+f exec thunar bindsym $mod+$alt+p exec pomatez bindsym $mod+$alt+e exec evolution bindsym $mod+$alt+c exec korganizer bindsym $mod+p exec bitwarden +bindsym $mod+$alt+m exec element-desktop bindsym $mod+$left focus left bindsym $mod+$down focus down @@ -156,6 +158,9 @@ exec swayidle -w \ resume 'swaymsg "output * power on"' \ before-sleep 'playerctl pause; swaylock -f' +exec aw-server +exec aw-watcher-window-wayland + include /etc/sway/config.d/* exec system-dnotify --ready diff --git a/sway/scripts/remote.sh b/sway/scripts/remote.sh index 032be3b..a3bd00b 100755 --- a/sway/scripts/remote.sh +++ b/sway/scripts/remote.sh @@ -7,15 +7,19 @@ if [ "$1" = "btn1" ]; then wtype " " elif [ "$active_window" = "foot" ]; then wtype -M ctrl -M shift -k c + wtype -m ctrl else wtype -M ctrl -k c + wtype -m ctrl fi else if [ "$active_window" = "anki" ]; then wtype "1" elif [ "$active_window" = "foot" ]; then wtype -M ctrl -M shift -k v + wtype -m ctrl else wtype -M ctrl -k v + wtype -m ctrl fi fi