diff options
| author | polwex <polwex@sortug.com> | 2025-10-22 13:59:25 +0700 |
|---|---|---|
| committer | polwex <polwex@sortug.com> | 2025-10-22 13:59:25 +0700 |
| commit | f11a2b69c2fb5ef6111af107deba37114f7ab2ff (patch) | |
| tree | d259b7df857c63011dea9e47191c338eaabe9746 | |
| parent | 0983b8509b5595c8214f0df9264ccfb34af50ad7 (diff) | |
niri on fwfw
| -rw-r--r-- | flake.lock | 36 | ||||
| -rw-r--r-- | hosts/base.nix | 2 | ||||
| -rw-r--r-- | hosts/local/fw11/configuration.nix | 2 | ||||
| -rw-r--r-- | hosts/local/fw11/thinkpad.kbd | 101 | ||||
| -rw-r--r-- | hosts/local/gui.nix | 1 | ||||
| -rw-r--r-- | hosts/local/niri.nix | 224 | ||||
| -rw-r--r-- | hosts/local/sway.nix (renamed from hosts/local/wayland.nix) | 0 | ||||
| -rw-r--r-- | hosts/local/thinkpad.kbd | 15 |
8 files changed, 253 insertions, 128 deletions
@@ -625,11 +625,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1760362368, - "narHash": "sha256-xjcfVPlTeHjE/H9244CmpEibGLfu7leHnQbfFZ/ctBg=", + "lastModified": 1760446779, + "narHash": "sha256-UzJHuqTgfwtnh34zbGq6NUe5i8wv3wg6B9njykBAddc=", "owner": "helix-editor", "repo": "helix", - "rev": "50e4385aefdd1cea80a3a50af62d5eefcb42b4e8", + "rev": "6e07bcc04dd5a0bb5ae04677823a5b3821f622c5", "type": "github" }, "original": { @@ -821,11 +821,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1760234031, - "narHash": "sha256-++3Sl4X0kEz/+7P0nOer6FUH0EX0AzuPL9FgNloM2Xk=", + "lastModified": 1760406533, + "narHash": "sha256-ViYpiGv0w+TXpBCFXPXWlEP3dVNHeGgvpsKDbQMY6UE=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "019169d0c5e13ffc5d2024ab75f46d5980d5f6bc", + "rev": "f8f51dd445f7b0dbb3429a3e31994bb0f2908010", "type": "github" }, "original": { @@ -995,11 +995,11 @@ "nixpkgs": "nixpkgs_9" }, "locked": { - "lastModified": 1759833546, - "narHash": "sha256-rOfkgIiiZNPUbf61OqEym60wXEODeDG8XH+gV/SUoUc=", + "lastModified": 1760441980, + "narHash": "sha256-HLO1uUa1DJWT6bXD+RigrSthZmxY6JHlbn+zhMizzBo=", "owner": "nix-community", "repo": "NixOS-WSL", - "rev": "7c0c0f4c3a51761434f18209fa9499b8579ff730", + "rev": "3534ac7ff39683da15dbf3adb2a950841a6d58d4", "type": "github" }, "original": { @@ -1162,11 +1162,11 @@ ] }, "locked": { - "lastModified": 1760380812, - "narHash": "sha256-Q375ZDPLy3LZzVNsf3bBz+jREJJPyMPmEDLnmHDV5Qw=", + "lastModified": 1760407932, + "narHash": "sha256-zmsb21trMZ2N1OQoVa9h0PVjSRbYME3CkfV7vRF34vE=", "owner": "nix-community", "repo": "nixpkgs-wayland", - "rev": "b67e8471846592f91c0580096d462c7aaff56b1c", + "rev": "ed8e74536c2d3f460a3590925b0e1c65754a9c40", "type": "github" }, "original": { @@ -1355,11 +1355,11 @@ "nixpkgs": "nixpkgs_12" }, "locked": { - "lastModified": 1760395640, - "narHash": "sha256-LNTOhGQRViS0a5Uf9Ak7VEtg8PLx1P9UD7Ft4JlJAJc=", + "lastModified": 1760443374, + "narHash": "sha256-zrCb/Ck+8Li9fhNbAr8eP2+X3qUwqnmSuoacD+x4Msc=", "owner": "nix-community", "repo": "NUR", - "rev": "5b3857ad47c7b4447120bb6d5d712e6101c908e3", + "rev": "c41298dba5d86cca70bf285662760e186c59b70f", "type": "github" }, "original": { @@ -1377,11 +1377,11 @@ "rust-overlay": "rust-overlay_3" }, "locked": { - "lastModified": 1760142221, - "narHash": "sha256-BspG0ZC3mLg1s6pxFjVFf9CPgcXM46jir0uAuvbiQs4=", + "lastModified": 1760431640, + "narHash": "sha256-Cb/DKkZaQ6IJ2huaXqSK4XNpv85sEIUr+oYvCqn7g/w=", "owner": "openai", "repo": "codex", - "rev": "26f7c46856060f440615645bdf2faf9e62c74e72", + "rev": "5346cc422dd053717c6f22ab20ffbd0aa5c6594b", "type": "github" }, "original": { diff --git a/hosts/base.nix b/hosts/base.nix index 43103c5..31bed5a 100644 --- a/hosts/base.nix +++ b/hosts/base.nix @@ -24,7 +24,7 @@ ''; settings = { substituters = [ - "https://cache-nixos.org" + "https://cache.nixos.org" "https://cuda-maintainers.cachix.org" "https://nix-community.cachix.org" "https://nix-gaming.cachix.org" diff --git a/hosts/local/fw11/configuration.nix b/hosts/local/fw11/configuration.nix index 354e441..71eef5d 100644 --- a/hosts/local/fw11/configuration.nix +++ b/hosts/local/fw11/configuration.nix @@ -26,7 +26,7 @@ ../../linux.nix # ../../syncthing.nix ../../unfree.nix - ../wayland.nix + ../niri.nix ../gui.nix ./keyboard.nix # ../android.nix diff --git a/hosts/local/fw11/thinkpad.kbd b/hosts/local/fw11/thinkpad.kbd deleted file mode 100644 index 7fb53d2..0000000 --- a/hosts/local/fw11/thinkpad.kbd +++ /dev/null @@ -1,101 +0,0 @@ -;; one liner comments ';;' -#| Multiline - comments |# - -(defcfg ;; For linux & by-id lists pluggable devices -;; If a key is not bound/left_empty(_) then it will fall back to the previous -;; layer's binding if not then default. -fallthrough true -;; To run system commands. You MIGHT face issues with tiling window managers due to command helpers. -;; allow-cmd true -;; use 'ls /dev/input/by-id/' for detachable keyboards and -;; 'ls /dev/input/by-path/' for builtin keyboards location' -input (device-file "/dev/input/by-id/usb-Lenovo_ThinkPad_Compact_USB_Keyboard_with_TrackPoint-event-kbd") -;; Not sure what this does. Please check the docs. -output (uinput-sink "My KMonad output") -) - -;; This is the real representation of your actual keyboard. We haven't started -;; customizing layouts yet. -(defsrc - esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del - ` 1 2 3 4 5 6 7 8 9 0 - = bspc - tab q w e r t y u i o p [ ] \ - caps a s d f g h j k l ; ' ret - lsft z x c v b n m , . / rsft up - lctl lmet lalt spc ralt rctl left down right -) -;; Aliases - -(defalias -;; Layer toggles -sym (layer-toggle syms) -sym2 (layer-toggle syms2) -cords (sticky-key 1000 (layer-toggle mods)) -;; -hrt (layer-switch homerowmods) -back (layer-switch qwerty) - -;; Homerow keys -a (tap-hold-next-release 280 a lctl) -s (tap-hold-next-release 280 s lalt) -d (tap-hold-next-release 280 d lmet) -f (tap-hold-next-release 280 f lsft) -;; -j (tap-hold-next-release 280 j rsft) -k (tap-hold-next-release 280 k lmet) -l (tap-hold-next-release 280 l lalt) -semi (tap-hold-next-release 280 ; rctl) - -;; button to launch brave browser -;; veeb (cmd-button "brave") -;; ssf (sticky-key 500 (layer-toggle rshift)) -;; rsf (layer-toggle rshift) -) - -;; The first custom layer is the one that gets activated when kmonad is started -(deflayer qwerty ;; The default layer that'd be read when you launch kmonad - esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del - ` 1 2 3 4 5 6 7 8 9 0 - = bspc - tab q w e r t y u i o p [ ] \ - esc a s d f g h j k l ; ' ret - @sym z x c v b n m , . / rsft up - lctl lmet @sym spc @cords @hrt left down right -) -(deflayer homerowmods - esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del - ` 1 2 3 4 5 6 7 8 9 0 - = bspc - tab q w e r t y u i o p [ ] \ - esc @a @s @d @f g h @j @k @l @semi ' ret - @sym z x c v b n m , . / rsft up - lctl lmet @sym spc lalt @back left down right -) -(deflayer mods - esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 del - ` 1 2 3 4 5 6 7 8 9 0 - = bspc - tab q w e r t y u i o p [ ] h - esc lctl lalt lmet lsft g h rsft rmet ralt rctl ' ret - @sym z x c v b n m , . / rsft up - lctl lmet @sym spc lalt @back left down right -) - -;; A layer dedicated to symbols -(deflayer syms - _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ up _ _ ! @ # $ % _ _ _ - _ _ left down right @sym2 ' ^ & - = _ ret - _ _ _ _ _ _ \( [ { < \ _ _ - _ _ _ _ _ _ _ _ _ -) - - -;; More symbols -(deflayer syms2 - _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ _ _ ` ~ * \_ + _ ret - _ _ _ _ _ _ \) ] } > | _ _ - _ _ _ _ _ _ _ _ _ -) diff --git a/hosts/local/gui.nix b/hosts/local/gui.nix index 548b3ea..81f97b1 100644 --- a/hosts/local/gui.nix +++ b/hosts/local/gui.nix @@ -4,6 +4,7 @@ ... }: { environment.systemPackages = with pkgs; [ + pavucontrol #terminals kitty alacritty diff --git a/hosts/local/niri.nix b/hosts/local/niri.nix new file mode 100644 index 0000000..7db141e --- /dev/null +++ b/hosts/local/niri.nix @@ -0,0 +1,224 @@ +{ + inputs, + pkgs, + ... +}: { + nixpkgs.config.packageOVerrides = pkgs: { + intel-vaapi-driver = pkgs.intel-vaapi-driver.override {enableHybridCodec = true;}; + vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;}; + }; + hardware.graphics = { + enable = true; + enable32Bit = true; + extraPackages = [ + pkgs.mesa + pkgs.vaapiVdpau + pkgs.libvdpau-va-gl + ]; + }; + programs.niri = { + enable = true; + }; + + environment.variables = { + WLR_NO_HARDWARE_CURSOR = "1"; + }; + environment.sessionVariables = { + WLR_NO_HARDWARE_CURSOR = "1"; + NIXOS_OZONE_WL = "1"; + SDL_VIDEODRIVER = "wayland"; + QT_QPA_PLATFORM = "wayland"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + _JAVA_AWT_WM_NONREPARENTING = "1"; + MOZ_ENABLE_WAYLAND = "1"; + + # GTK_IM_MODULE = "fcitx"; + # QT_IM_MODULE = "fcitx"; + # SDL_IM_MODULE = "fcitx"; + + XDG_CURRENT_DESKTOP = "sway"; + GDK_BACKEND = "wayland"; + XDG_SESSION_TYPE = "wayland"; + XMODIFIERS = "@im=fcitx"; + }; + + xdg.portal = { + enable = true; + extraPortals = with pkgs; [ + # xdg-desktop-portal-hyprland + # xdg-desktop-portal-cosmic + xdg-desktop-portal-gtk + xdg-desktop-portal-gnome + ]; + config = { + common = { + default = [ + "gnome" + "gtk" + ]; + "org.freedesktop.impl.portal.Access" = ["gtk"]; + "org.freedesktop.impl.portal.Notification" = ["gtk"]; + "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"]; + "org.freedesktop.impl.portal.FileChooser" = ["gtk"]; + }; + }; + }; + environment.systemPackages = with pkgs; [ + quickshell + cosmic-panel + fuzzel + # + cliphist + hypridle + hyprlock + networkmanagerapplet + playerctl + qalculate-gtk + swaynotificationcenter + swayosd + syncthingtray + wl-clipboard + wl-clip-persist + wl-color-picker + wofi-power-menu + + # xdg-utils + # xdg-desktop-portal + # xdg-desktop-portal-wlr + # xdg-desktop-portal-gtk + # # calibre + # # nyxt + # wofi + # imv + # swaylock + # brightnessctl + # swayidle + # foot + # mako + # kanshi + # grim + # slurp + # wl-clipboard + # wf-recorder + # viewnior + # playerctl + # blueman + # wdisplays + # inputs.waybar.packages.x86_64-linux.default + # glxinfo + # vulkan-tools + # glmark2 + # intel-media-driver + # intel-vaapi-driver + # pavucontrol + # # icons + # polkit_gnome + # gnome-themes-extra + # gtk-engine-murrine + # gtk_engines + # gsettings-desktop-schemas + # lxappearance + # adwaita-qt + # adwaita-icon-theme + # libcamera # pipewire seems to want this + # easyeffects + # tigervnc + # foliate + # # code + # kdePackages.kompare + # meld + # # tmp + # # browser TTS + # # speechd + # # espeak-ng + # # espeak-ng-data + # wineWowPackages.waylandFull + # libcamera # pipewire seems to want this + # tracy # cool system watcher + ]; + services.speechd.enable = true; + + # cjk input + + i18n.inputMethod = { + type = "fcitx5"; + enable = true; + fcitx5 = { + # enabled = true; + addons = with pkgs; [ + rime-data + fcitx5-rime + fcitx5-mozc + fcitx5-configtool + fcitx5-chinese-addons + fcitx5-gtk + ]; + waylandFrontend = true; + }; + }; + services.xserver.desktopManager.runXdgAutostartIfNone = true; + + fonts = { + enableDefaultPackages = true; + fontconfig = { + defaultFonts.emoji = ["Noto Color Emoji"]; + defaultFonts.monospace = ["Hack" "Sarasa Mono SC"]; + defaultFonts.sansSerif = ["DejaVu Sans"]; + defaultFonts.serif = ["DejaVu Serif" "Source Han Serif SC"]; + }; + packages = with pkgs; + [ + fira-code + fira + cooper-hewitt + ibm-plex + jetbrains-mono + iosevka + spleen + fira-code-symbols + powerline-fonts + arphic-ukai + arphic-uming + dejavu_fonts + font-awesome + inconsolata # monospaced + noto-fonts + noto-fonts-cjk-sans + noto-fonts-emoji + noto-fonts-extra + powerline-fonts + source-han-sans-japanese + source-han-sans-korean + source-han-sans-simplified-chinese + source-han-sans-traditional-chinese + source-sans-pro + ubuntu_font_family + wqy_microhei + wqy_zenhei + ] + ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); + }; + + # screen capture + # + + services.dbus.enable = true; + ## Remove sound.enable or set it to false if you had it set previously, as sound.enable is only meant for ALSA-based configurations + + # rtkit is optional but recommended + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + wireplumber.enable = true; + # If you want to use JACK applications, uncomment this + jack.enable = true; + }; + + # pipewire requires these off + # sound.enable = true; + # hardware.pulseaudio.enable = true; + # hardware.bluetooth.enable = true; +} diff --git a/hosts/local/wayland.nix b/hosts/local/sway.nix index e881fec..e881fec 100644 --- a/hosts/local/wayland.nix +++ b/hosts/local/sway.nix diff --git a/hosts/local/thinkpad.kbd b/hosts/local/thinkpad.kbd index 82de2e2..e7bb184 100644 --- a/hosts/local/thinkpad.kbd +++ b/hosts/local/thinkpad.kbd @@ -61,7 +61,7 @@ semi (tap-hold-next-release 280 ; rctl) tab q w e r t y u i o p [ ] \ esc a s d f g h j k l ; ' ret lsft z x c v b n m , . / rsft - lctl lmet @sym spc @cords @hrt left up right + lctl lmet @sym spc @cords @hrt pgup up pgdn left down right ) (deflayer homerowmods @@ -70,7 +70,7 @@ semi (tap-hold-next-release 280 ; rctl) tab q w e r t y u i o p [ ] \ esc @a @s @d @f g h @j @k @l @semi ' ret lsft z x c v b n m , . / rsft - lctl lmet @sym spc lalt @back left up right + lctl lmet @sym spc lalt @back pgup up pgdn left down right ) (deflayer mods @@ -79,18 +79,19 @@ semi (tap-hold-next-release 280 ; rctl) tab q w e r t y u i o p [ ] h esc lctl lalt lmet lsft g h rsft rmet ralt rctl ' ret lsft z x c v b n m , . / rsft - lctl lmet @sym spc lalt @back left up right + lctl lmet @sym spc lalt @back pgup up pgdn left down right -) +) ;; A layer dedicated to symbols (deflayer syms esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 pgup pgdn ins del _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ up _ _ ! @ # $ % _ _ _ - _ _ left down right @sym2 ' ^ & - = _ ret + _ _ _ up _ _ ! @ # $ % pgup _ _ + _ _ left down right @sym2 ' ^ & - = pgdn ret _ _ _ _ _ _ \( [ { < \ _ _ - _ _ _ _ _ _ _ _ _ _ _ + _ _ _ _ _ pgup pgup pgdn + l pgdn l ) |
