diff --git a/configuration.nix b/configuration.nix index 4156e4f..2add873 100644 --- a/configuration.nix +++ b/configuration.nix @@ -40,8 +40,6 @@ boot.loader.efi.canTouchEfiVariables = true; # Flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; - networking.hostName = "nixos"; # Define your hostname. - networking.enableIPv6 = false; # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # Configure network proxy if necessary networking.proxy.default = @@ -49,7 +47,10 @@ boot.loader.efi.canTouchEfiVariables = true; # "127.0.0.1,localhost,internal.domain"; # Enable networking + boot.kernelParams = [ "ipv6.disable=1" ]; networking.networkmanager.enable = true; + networking.hostName = "nixos"; # Define your hostname. + networking.enableIPv6 = false; # VM virtualisation.virtualbox.host.enable = true; @@ -59,7 +60,7 @@ boot.loader.efi.canTouchEfiVariables = true; users.extraGroups.vboxusers.members = [ "nico" ]; # virtualisation.virtualbox.guest.enable = true; # virtualisation.virtualbox.guest.dragAndDrop = true; -# virtualisation.docker.enable = true; + virtualisation.docker.enable = true; # Set your time zone. time.timeZone = "Europe/Berlin"; @@ -110,7 +111,7 @@ services.mullvad-vpn.enable = true; services.mullvad-vpn.package = pkgs.mullvad-vpn; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.nico = { isNormalUser = true; description = "nico"; extraGroups = [ "networkmanager" - "wheel" "adbusers" "docker"]; packages = with pkgs; [ + "wheel" "adbusers" "docker" "input" "dialout"]; packages = with pkgs; [ ]; }; @@ -121,13 +122,21 @@ services.mullvad-vpn.enable = true; # Allow unfree packages nixpkgs.config.allowUnfree = true; + services.udev.packages = [ + pkgs.platformio-core + pkgs.openocd + ]; + # services.flatpak.enable = true; # List packages installed in system profile. To search, run: $ nix search wget environment.systemPackages = with pkgs; [ # grayjay signal-desktop + obsidian discord + anki + grayjay lutris qbittorrent vim diff --git a/packages/default.nix b/packages/default.nix index 3cf03df..79ed96b 100644 --- a/packages/default.nix +++ b/packages/default.nix @@ -11,8 +11,8 @@ ./nvim ./emacs ./terminal - # ./rofi - ./fuzzel + ./rofi + # ./fuzzel ./niri ./hyprland # ./tmux diff --git a/packages/niri/config.kdl b/packages/niri/config.kdl index 2d275aa..4c050fc 100644 --- a/packages/niri/config.kdl +++ b/packages/niri/config.kdl @@ -257,6 +257,12 @@ layout { // This line starts waybar, a commonly used bar for Wayland compositors. spawn-at-startup "waybar" spawn-at-startup "wpaperd" +spawn-at-startup "xwayland-satellite" +spawn-at-startup "wl-paste" "--watch" "cliphist" "store" + +environment { + DISPLAY ":0" +} // Uncomment this line to ask the clients to omit their client-side decorations if possible. // If the client will specifically ask for CSD, the request will be honored. @@ -307,6 +313,19 @@ window-rule { open-floating true } +// open rofi in floating window +window-rule { + match app-id=r#"rofi$"# + match title="rofi" + open-floating true +} + +window-rule { + match app-id=r#"nautilus$"# + match title="nautilus" + open-floating true +} + // Example: block out two password managers from screen capture. // (This example rule is commented out with a "/-" in front.) /-window-rule { @@ -343,8 +362,9 @@ binds { // Suggested binds for running programs: terminal, app launcher, screen locker. Mod+Return hotkey-overlay-title="Open a Terminal: ghostty" { spawn "ghostty"; } - Mod+M hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; } - Super+Alt+L hotkey-overlay-title="Power menu" { spawn "rofi-power-menu"; } + Mod+M hotkey-overlay-title="Run an Application: rofi" { spawn "rofi" "-show" "drun"; } + Super+Alt+L hotkey-overlay-title="Power menu" { spawn "rofi" "-show" "power-menu" "-modi" "power-menu:rofi-power-menu"; } + Super+V hotkey-overlay-title="Clipboard history" { spawn "bash" "-c" "cliphist list | rofi -dmenu | cliphist decode | wl-copy"; } // You can also use a shell. Do this if you need pipes, multiple commands, etc. // Note: the entire command goes as a single argument in the end. @@ -352,10 +372,10 @@ binds { // Example volume keys mappings for PipeWire & WirePlumber. // The allow-when-locked=true property makes them work even when the session is locked. - XF86AudioRaiseVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+"; } - XF86AudioLowerVolume allow-when-locked=true { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-"; } - 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 "pactl" "set-sink-volume" "@DEFAULT_SINK@" "+1%"; } + XF86AudioLowerVolume allow-when-locked=true { spawn "pactl" "set-sink-volume" "@DEFAULT_SINK@" "-1%"; } + XF86AudioMute allow-when-locked=true { spawn "pactl" "set-sink-mute" "@DEFAULT_SINK@" "toggle"; } + // XF86AudioMicMute allow-when-locked=true { spawn "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"; } // Open/close the Overview: a zoomed-out view of workspaces and windows. // You can also move the mouse into the top-left hot corner, @@ -546,7 +566,7 @@ binds { // Move the focused window between the floating and the tiling layout. Mod+Space { toggle-window-floating; } - Mod+V { switch-focus-between-floating-and-tiling; } + Mod+Shift+Space { switch-focus-between-floating-and-tiling; } // Toggle tabbed column display mode. // Windows in this column will appear as vertical tabs, diff --git a/packages/niri/default.nix b/packages/niri/default.nix index 000dae8..f8fba63 100644 --- a/packages/niri/default.nix +++ b/packages/niri/default.nix @@ -1,5 +1,12 @@ { pkgs, config, lib,... }: { + home.packages = with pkgs; [ + xwayland-satellite + xdg-desktop-portal-gtk + xdg-desktop-portal-gnome + nautilus + ]; + home.file."/home/nico/.config/niri/config.kdl" = { source = ./config.kdl; };