diff --git a/flake.lock b/flake.lock index a8b041c..6783813 100644 --- a/flake.lock +++ b/flake.lock @@ -124,18 +124,20 @@ "gnome-shell": { "flake": false, "locked": { - "lastModified": 1744584021, - "narHash": "sha256-0RJ4mJzf+klKF4Fuoc8VN8dpQQtZnKksFmR2jhWE1Ew=", + "host": "gitlab.gnome.org", + "lastModified": 1762869044, + "narHash": "sha256-nwm/GJ2Syigf7VccLAZ66mFC8mZJFqpJmIxSGKl7+Ds=", "owner": "GNOME", "repo": "gnome-shell", - "rev": "52c517c8f6c199a1d6f5118fae500ef69ea845ae", - "type": "github" + "rev": "680e3d195a92203f28d4bf8c6e8bb537cc3ed4ad", + "type": "gitlab" }, "original": { + "host": "gitlab.gnome.org", "owner": "GNOME", - "ref": "48.1", + "ref": "gnome-49", "repo": "gnome-shell", - "type": "github" + "type": "gitlab" } }, "grub2-themes": { @@ -163,16 +165,16 @@ ] }, "locked": { - "lastModified": 1758463745, - "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", + "lastModified": 1764736872, + "narHash": "sha256-4mqLegNQeD54X7enm6EI9aNWl6CaIfyhl5PaYoGYwqk=", "owner": "nix-community", "repo": "home-manager", - "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", + "rev": "3366918730bb6b699395a9d237397f1d710a94b3", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.05", + "ref": "release-25.11", "repo": "home-manager", "type": "github" } @@ -185,11 +187,11 @@ ] }, "locked": { - "lastModified": 1752603129, - "narHash": "sha256-S+wmHhwNQ5Ru689L2Gu8n1OD6s9eU9n9mD827JNR+kw=", + "lastModified": 1762964643, + "narHash": "sha256-RYHN8O/Aja59XDji6WSJZPkJpYVUfpSkyH+PEupBJqM=", "owner": "nix-community", "repo": "home-manager", - "rev": "e8c19a3cec2814c754f031ab3ae7316b64da085b", + "rev": "827f2a23373a774a8805f84ca5344654c31f354b", "type": "github" }, "original": { @@ -210,11 +212,11 @@ "xwayland-satellite-unstable": "xwayland-satellite-unstable" }, "locked": { - "lastModified": 1763967518, - "narHash": "sha256-Gt0QlWp3r5JF+w2iZMbbot58UIR66fPH8LuHRxmHjsA=", + "lastModified": 1764721873, + "narHash": "sha256-EHMH54iI7MYYb7mUBE6JUtbbVhHTF7jtkuZ0Lo1bkBg=", "owner": "sodiboo", "repo": "niri-flake", - "rev": "69c6216ddacf8a708e4c6e51273772226fab3bc2", + "rev": "f3935696628433007c582fc323730ba18f137a1d", "type": "github" }, "original": { @@ -243,11 +245,11 @@ "niri-unstable": { "flake": false, "locked": { - "lastModified": 1763964256, - "narHash": "sha256-TNtOfYXppR5ln5Go8ncQFMs5+xa3LqJWkaQq22ymAcI=", + "lastModified": 1764678181, + "narHash": "sha256-TMs2Px19UAG06zITXAH7efl7X8G7BDyMCy1ilX/8wy0=", "owner": "YaLTeR", "repo": "niri", - "rev": "79e41d7d88de44356b48400515076bf5593544e8", + "rev": "f874b2fce50e0f7ba21e270c86cfa168a1506b82", "type": "github" }, "original": { @@ -273,11 +275,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1761933221, - "narHash": "sha256-rNHeoG3ZrA94jczyLSjxCtu67YYPYIlXXr0uhG3wNxM=", + "lastModified": 1764440730, + "narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "7467f155fcba189eb088a7601f44fbef7688669b", + "rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3", "type": "github" }, "original": { @@ -288,11 +290,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1760692209, - "narHash": "sha256-ZUD6NfQFwkWTHi2vao4Zn35guHMHuByCRDE7Jz+nWj4=", + "lastModified": 1764774872, + "narHash": "sha256-vDfYOigiikglo99pdzJtt41rrkxFz8Vin/s0fgv4QOk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "88ee2ac331edc3ce9f9df92aaf824592473ed868", + "rev": "28944de8e5fee5343ddc75de812ced58871abe0c", "type": "github" }, "original": { @@ -304,11 +306,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1763622513, - "narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=", + "lastModified": 1764560356, + "narHash": "sha256-M5aFEFPppI4UhdOxwdmceJ9bDJC4T6C6CzCK1E2FZyo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b", + "rev": "6c8f0cca84510cc79e09ea99a299c9bc17d03cb6", "type": "github" }, "original": { @@ -320,16 +322,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1760423683, - "narHash": "sha256-Tb+NYuJhWZieDZUxN6PgglB16yuqBYQeMJyYBGCXlt8=", + "lastModified": 1764522689, + "narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a493e93b4a259cd9fea8073f89a7ed9b1c5a1da2", + "rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-25.05", + "ref": "nixos-25.11", "repo": "nixpkgs", "type": "github" } @@ -338,18 +340,14 @@ "inputs": { "nixpkgs": [ "nixpkgs" - ], - "quickshell": [ - "quickshell" - ], - "systems": "systems" + ] }, "locked": { - "lastModified": 1762462253, - "narHash": "sha256-WAgPlZkOpYNE/vgo4yNf5HnviFnYe8g0hQ7QsJFkXgU=", + "lastModified": 1764776148, + "narHash": "sha256-4d4wrlYeN+HUQ+ixvHWQMguG4TxbPWyiyffca2V+zFc=", "owner": "noctalia-dev", "repo": "noctalia-shell", - "rev": "c6a9db6d8493d1fe5c1d533e13e628ff0d62a3ee", + "rev": "7e46f225465457aed8b89d6557619a0cb2602c2c", "type": "github" }, "original": { @@ -393,11 +391,11 @@ ] }, "locked": { - "lastModified": 1762784320, - "narHash": "sha256-odsk96Erywk5hs0dhArF38zb7Oe0q6LZ70gXbxAPKno=", + "lastModified": 1763909441, + "narHash": "sha256-56LwV51TX/FhgX+5LCG6akQ5KrOWuKgcJa+eUsRMxsc=", "owner": "nix-community", "repo": "plasma-manager", - "rev": "7911a0f8a44c7e8b29d031be3149ee8943144321", + "rev": "b24ed4b272256dfc1cc2291f89a9821d5f9e14b4", "type": "github" }, "original": { @@ -413,11 +411,11 @@ ] }, "locked": { - "lastModified": 1761897390, - "narHash": "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=", + "lastModified": 1764663772, + "narHash": "sha256-sHqLmm0wAt3PC4vczJeBozI1/f4rv9yp3IjkClHDXDs=", "owner": "outfoxxed", "repo": "quickshell", - "rev": "fc704e6b5d445899a1565955268c91942a4f263f", + "rev": "26531fc46ef17e9365b03770edd3fb9206fcb460", "type": "github" }, "original": { @@ -454,7 +452,7 @@ "nixpkgs" ], "nur": "nur", - "systems": "systems_2", + "systems": "systems", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -462,16 +460,16 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1763740035, - "narHash": "sha256-h33/8bTP5ww1oKwrXgK2fuJPsNlWPzdG4jsvUlr6qqM=", + "lastModified": 1764765253, + "narHash": "sha256-wHGRoMy5L373ezz8QpW9v9Cc3BTgUL9tJh4LUDCLcmE=", "owner": "nix-community", "repo": "stylix", - "rev": "206e6ee4d11adcc80d8cbe612e14e08641474fc8", + "rev": "228616717d4502f334d40d18441e79d686fcc349", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-25.05", + "ref": "release-25.11", "repo": "stylix", "type": "github" } @@ -491,21 +489,6 @@ "type": "github" } }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "tinted-foot": { "flake": false, "locked": { @@ -607,11 +590,11 @@ "xwayland-satellite-unstable": { "flake": false, "locked": { - "lastModified": 1763704521, - "narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=", + "lastModified": 1764721075, + "narHash": "sha256-ChH4nq0cMEEkzkHqKlQt5Z7wxrk8ybcEHuA1YKAYmV0=", "owner": "Supreeeme", "repo": "xwayland-satellite", - "rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad", + "rev": "1b918e29b419e89910014054e8b71d54c9235ea5", "type": "github" }, "original": { @@ -628,11 +611,11 @@ ] }, "locked": { - "lastModified": 1760675007, - "narHash": "sha256-uzFK9GgP/6TiPyXmSXeNQld3pG1zeWsPfi+ut/vrkrI=", + "lastModified": 1764736168, + "narHash": "sha256-CQcj/oWKH4zN8Xkc1RglX+uOJTW1fwNWvMQWRXRlEys=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "11308e8294b68cda466145d5982996c489c126bc", + "rev": "df63ce4f706567e6efa083ba63d5e7792bf70ffa", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 89e363f..91cf443 100644 --- a/flake.nix +++ b/flake.nix @@ -2,11 +2,11 @@ description = "NixOS configuration"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixos-hardware.url = "github:NixOS/nixos-hardware"; #To Provide Framework13 hardware modules - home-manager.url = "github:nix-community/home-manager/release-25.05"; + home-manager.url = "github:nix-community/home-manager/release-25.11"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; plasma-manager = { @@ -19,7 +19,7 @@ zen-browser.inputs.nixpkgs.follows = "nixpkgs"; #stylix.url = "github:nix-community/stylix/"; - stylix.url = "github:nix-community/stylix/release-25.05"; #Had to use branch or it would not build corrently + stylix.url = "github:nix-community/stylix/release-25.11"; #Had to use branch or it would not build corrently stylix.inputs.nixpkgs.follows = "nixpkgs"; quickshell = { @@ -47,7 +47,7 @@ let username = "cookiez"; hostname = "nixos"; - version = "25.05"; + version = "25.11"; system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; diff --git a/hyprland/hyprland.nix b/hyprland/hyprland.nix index 03dcbe4..c32344f 100644 --- a/hyprland/hyprland.nix +++ b/hyprland/hyprland.nix @@ -23,7 +23,7 @@ hyprpaper sway #Sway Wayland compositor #kitty #Terminal (Already Included by default) - rofi-wayland #Search bar (Meta + Space) + rofi #Search bar (Meta + Space) yazi hyprlock ]; diff --git a/modules/configuration.nix b/modules/configuration.nix index a605c3a..1a8581f 100644 --- a/modules/configuration.nix +++ b/modules/configuration.nix @@ -153,7 +153,7 @@ meslo-lgs-nf noto-fonts noto-fonts-cjk-sans - noto-fonts-emoji + noto-fonts-color-emoji inter ]; diff --git a/modules/default.nix b/modules/default.nix index 06ff491..61825b0 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -9,9 +9,9 @@ #./packages.nix #./hardware-configuration.nix - #../plasma/plasma.nix - #../hyprland/hyprland.nix - #../niri/niri.nix + ../plasma/plasma.nix + ../hyprland/hyprland.nix + ../niri/niri.nix ]; specialisation = { @@ -41,16 +41,16 @@ }; }; - "minimal" = { - inheritParentConfig = false; - configuration = { - imports = [ - ./minimal.nix - ]; - - environment.etc."nixos-tags".text = "minimal"; - }; - }; +# "minimal" = { +# inheritParentConfig = false; +# configuration = { +# imports = [ +# ./minimal.nix +# ]; +# +# environment.etc."nixos-tags".text = "minimal"; +# }; +# }; "niri" = { inheritParentConfig = false; diff --git a/modules/desktop-entries.nix b/modules/desktop-entries.nix index efd1906..da081a1 100644 --- a/modules/desktop-entries.nix +++ b/modules/desktop-entries.nix @@ -14,6 +14,24 @@ name = "Konsole"; noDisplay = true; }; + + desktopEntries."discord" = { + categories = [ "Network" "InstantMessaging" "Chat" ]; + exec = "vesktop %U"; + genericName = "Internet Messenger"; + icon = "/home/${username}/NixOS/other/discord.app.png"; + name = "Discord"; + type = "Application"; + }; + + desktopEntries."vesktop" = { + noDisplay = true; + categories = [ "Network" "InstantMessaging" "Chat" ]; + exec = "vesktop %U"; + genericName = "Internet Messenger"; + name = "Vesktop"; + type = "Application"; + }; desktopEntries.kitty = { name = "kitty"; diff --git a/modules/home.nix b/modules/home.nix index ef2e531..91b8717 100644 --- a/modules/home.nix +++ b/modules/home.nix @@ -5,7 +5,14 @@ home.username = username; home.homeDirectory = "/home/${username}"; home.packages = [ - (import ./ncli.nix { inherit pkgs host; backupFiles = [ ".config/mimeapps.list.backup" ]; }) + (import ./ncli.nix { inherit pkgs host; backupFiles = [ + ".gtkrc-2.0.backup" + ".config/gtk-3.0/gtk.css.backup" + ".config/gtk-3.0/settings.ini.backup" + ".config/gtk-4.0/gtk.css.backup" + ".config/gtk-4.0/settings.ini.backup" + ".config/niri/config.kdl" + ]; }) ]; imports = [ @@ -44,14 +51,15 @@ git = { enable = true; - userName = "Cookiez"; - userEmail = "jaden-puerkenauer@web.de"; - - extraConfig = { - init.defaultBranch = "main"; - credentials.helper = "store"; - }; - }; + settings = { + user = { + name = "Cookiez"; + email = "jaden-puerkenauer@web.de"; + init.defaultBranch = "main"; + credentials.helper = "store"; + }; + }; + }; zen-browser = { enable = true; diff --git a/modules/hyprlock/default.nix b/modules/hyprlock/default.nix index 92c34b7..f939de5 100644 --- a/modules/hyprlock/default.nix +++ b/modules/hyprlock/default.nix @@ -9,5 +9,6 @@ environment.systemPackages = with pkgs; [ + hyprlock ]; } diff --git a/modules/hyprpaper/default.nix b/modules/hyprpaper/default.nix index 92c34b7..e938a11 100644 --- a/modules/hyprpaper/default.nix +++ b/modules/hyprpaper/default.nix @@ -9,5 +9,6 @@ environment.systemPackages = with pkgs; [ + hyprpaper ]; } diff --git a/modules/ncli.nix b/modules/ncli.nix index c7a7ff4..8ab7f24 100644 --- a/modules/ncli.nix +++ b/modules/ncli.nix @@ -1,7 +1,7 @@ { pkgs, host, - backupFiles ? [".config/mimeapps.list.backup"], + backupFiles ? [ ".config/mimeapps.list.backup" ], ... }: let backupFilesString = pkgs.lib.strings.concatStringsSep " " backupFiles; diff --git a/modules/neovim-home.nix b/modules/neovim-home.nix index 9a22877..373585f 100644 --- a/modules/neovim-home.nix +++ b/modules/neovim-home.nix @@ -83,9 +83,9 @@ spec = { { "LazyVim/LazyVim", import = "lazyvim.plugins" }, { "nvim-telescope/telescope-fzf-native.nvim", enabled = true }, - { "williamboman/mason-lspconfig.nvim", enabled = false }, - { "williamboman/mason.nvim", enabled = false }, - { import = "plugins" }, + { "mason-org/mason-lspconfig.nvim", enabled = false }, + { "mason-org/mason.nvim", enabled = false }, + --{ import = "plugins" }, { "nvim-treesitter/nvim-treesitter", opts = { ensure_installed = {} } }, }, }) diff --git a/modules/noctalia/home.nix b/modules/noctalia/home.nix index 5222617..8983bed 100644 --- a/modules/noctalia/home.nix +++ b/modules/noctalia/home.nix @@ -7,7 +7,7 @@ programs = { noctalia-shell = { enable = true; - systemd.enable = true; + systemd.enable = false; }; }; } diff --git a/modules/packages.nix b/modules/packages.nix index e20afff..c6cbcc6 100644 --- a/modules/packages.nix +++ b/modules/packages.nix @@ -4,8 +4,7 @@ #Essentials (CLI Only) wget #A tool for quickly downloading things from the Web micro-with-xclip #Micro text editor with xclip for clipboard - thefuck #Error correction in case commands are wrong. Type: 'fuck' - jdk23 #Java Development Kit 23 + javaPackages.compiler.openjdk25 #Java Development Kit 23 python312 #Python 3.12 python312Packages.pip #Pip for Python 3.12 python312Packages.cmake #The CMake tool to manage project build configurations @@ -38,8 +37,9 @@ #Programming #jetbrains.pycharm-community #The PyCharm IDE to edit Python code - jetbrains.idea-community #The IntelliJ IDE to edit Java code + #jetbrains.idea-community #The IntelliJ IDE to edit Java code #jetbrains.clion #The CLion IDE to edit and compile c/c++ code + jetbrains-toolbox #racket #The racket Programming language, with DrRacket IDE, for University (*Not* because it's my favourite) rustup #Rust Programming Toolchain #go #Go Programming Language @@ -55,7 +55,7 @@ #Desktop Applications drawio - jetbrains.datagrip + #jetbrains.datagrip ryubing vlc #steam @@ -68,10 +68,11 @@ rpi-imager kdePackages.yakuake #atlauncher - discord + #discord + vesktop wineWowPackages.stagingFull winetricks - #whatsapp-for-linux + wasistlos #Whatsapp #obs-studio #i2p gparted #Disk partition Manager @@ -88,6 +89,8 @@ libreoffice-still kdePackages.kservice qbittorrent + waydroid #Android + grim #CLI tools pdftk @@ -110,21 +113,21 @@ "dotnet-runtime-6.0.36" ]; -# services.flatpak = { -# enable = false; -# -# remotes = [ -# { -# name = "flathub"; -# location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; -# } -# ]; -# packages = [ -# { -# appId = "org.vinegarhq.Sober"; -# origin = "flathub"; -# #commit = "e28fd81675b0871614ccdc8fc66c6da6761dd11333a65900a0451edf07ef0ea6"; -# } -# ]; -# }; + services.flatpak = { + enable = true; + + remotes = [ + { + name = "flathub"; + location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; + } + ]; + packages = [ + { + appId = "org.vinegarhq.Sober"; + origin = "flathub"; + #commit = "e28fd81675b0871614ccdc8fc66c6da6761dd11333a65900a0451edf07ef0ea6"; + } + ]; + }; } diff --git a/modules/stylix.nix b/modules/stylix/default.nix similarity index 66% rename from modules/stylix.nix rename to modules/stylix/default.nix index 6c1e5a9..f69e4cb 100644 --- a/modules/stylix.nix +++ b/modules/stylix/default.nix @@ -1,4 +1,4 @@ -{ pkgs, inputs, ... }: +{ pkgs, inputs, username, ... }: { imports = @@ -6,11 +6,15 @@ inputs.stylix.nixosModules.stylix ]; + home-manager.sharedModules = [ + ./home.nix + ]; + stylix = { enable = true; - image = ../other/wallpaper2.png; + image = ../../other/wallpaper2.png; #autoEnable = true; #Auto generate theme based on wallpaper - base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-moon.yaml"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/dracula.yaml"; opacity = { desktop = 0.5; terminal = 0.9; @@ -31,6 +35,9 @@ name = "Noto Serif"; }; }; - targets.grub.enable = false; + targets = { + grub.enable = false; + qt.enable = false; + }; }; } diff --git a/modules/stylix/home.nix b/modules/stylix/home.nix new file mode 100644 index 0000000..bd3e5e3 --- /dev/null +++ b/modules/stylix/home.nix @@ -0,0 +1,17 @@ +{pkgs, inputs, username, ...}: +{ + + imports = [ + ]; + + services = { + }; + + stylix = { + targets = { + kitty.enable = false; + kde.enable = false; + zen-browser.profileNames = [ "${username}" ]; + }; + }; +} diff --git a/modules/waybar/config.jsonc b/modules/waybar/config.jsonc new file mode 100644 index 0000000..85f9236 --- /dev/null +++ b/modules/waybar/config.jsonc @@ -0,0 +1,181 @@ +// -*- mode: jsonc -*- +{ + "layer": "top", + "mode": "dock", + "position": "top", // (top|bottom|left|right) + "height": 40, // (to be removed for auto height) + "width": "auto", + "spacing": 3, // Gaps between modules + "margin": 0, + "fixed-center": true, + "reload_style_on_change": true, + "modules-left": [ + "sway/workspaces", + "sway/mode", + "sway/scratchpad" + ], + "modules-center": [ + "clock" + ], + "modules-right": [ + "custom/weather", + "pulseaudio", + "temperature", + "network", + "backlight", + "battery", + "tray" + ], + "keyboard-state": { + "numlock": true, + "capslock": true, + "format": "{icon} {name}", + "format-icons": { + "locked": "", + "unlocked": "" + } + }, + "sway/mode": { + "format": "{}" + }, + "sway/scratchpad": { + "format": "{icon} {count}", + "show-empty": false, + "format-icons": [ + "", + "" + ], + "tooltip": true, + "tooltip-format": "{title}", + "rewrite": { + "(.*) - Mozilla Firefox": "🌎 $1" + } + }, + "tray": { + "icon-size": 24, + "show-passive-items": true, + "spacing": 10 + }, + "clock": { + "interval": 1, + "format": "{:%A %d. %b %T}", + "tooltip-format": "{calendar}", + "calendar": { + "format": { + "today": "{}" + } + } + }, + "temperature": { + // "thermal-zone": 2, + // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input", + "interval": 1000, + "critical-threshold": 80, + // "format-critical": "{temperatureC}°C {icon}", + "format": "{temperatureC}°C" + //"format-icons": ["", "", ""] + }, + "backlight": { + // "device": "acpi_video1", + "format": "{icon}", + "tooltip-format": "{icon} {percent}", + "format-icons": [ + "󰌶", + "󱩎", + "󱩏", + "󱩐", + "󱩑", + "󱩒", + "󱩓", + "󱩔", + "󱩕", + "󱩖", + "󰛨" + ] + }, + "battery": { + "states": { + // "good": 95, + "warning": 30, + "critical": 15 + }, + "format": "{icon}", + "format-full": "{icon}", + "format-charging": "{icon} ", + "format-plugged": "{icon} ", + "format-alt": "{icon}", + "format-icons": [ + "", + "", + "", + "", + "" + ] + }, + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}\nDriver: {driver}", + "tooltip": true, + "format-icons": { + "default": "", + "performance": "", + "balanced": "", + "power-saver": "" + } + }, + "network": { + "interval": 1000, + "format-wifi": "{icon}", + "format-ethernet": "{ipaddr}/{cidr} ", + "tooltip-format": "{essid}\n{ifname} via {gwaddr}\n{ipaddr}/{cidr}", + "format-linked": "{ifname} (No IP) ", + "format-disconnected": "󰤭", + "format-alt": "{essid}", + "format-icons": [ + "󰤯", + "󰤟", + "󰤢", + "󰤥", + "󰤨" + ] + }, + "pulseaudio": { + "format": "{icon} {format_source}", + "format-muted": " {format_source}", + "format-source": "", + "format-source-muted": " ", + "format-bluetooth": "{icon} {format_source}", + "format-bluetooth-muted": "{icon} {format_source}", + "format-icons": { + "headphone": "", + "hands-free": "", + "headset": "󰋎", + "phone": " ", + "portable": " ", + "car": "", + "default": [ + "", + "", + "" + ] + }, + "tooltip-format": "{icon} {volume}%\n{format_source}", + "ignored-sinks": [ + "Easy Effects Sink" + ] + }, + "sway/window": { + "format": "{app_id}", + "max-length": 50, + "rewrite": { + "(?:.*\\.)+(?!.*\\.)([^.]+)": "$1" + } + }, + "custom/weather": { + "format": "{}°C", + "tooltip": true, + "interval": 3600, + "exec": "wttrbar --date-format \"%d.%m.%Y\" -l de", + "return-type": "json" + } +} diff --git a/modules/waybar/home.nix b/modules/waybar/home.nix new file mode 100644 index 0000000..7040258 --- /dev/null +++ b/modules/waybar/home.nix @@ -0,0 +1,5 @@ +{ ... }: +{ +# xdg.configFile."waybar/config.jsonc".source = ./config.jsonc; +# xdg.configFile."waybar/style.css".source = ./style.css; +} diff --git a/modules/waybar/style.css b/modules/waybar/style.css new file mode 100644 index 0000000..5472129 --- /dev/null +++ b/modules/waybar/style.css @@ -0,0 +1,130 @@ +* { + border: none; + border-radius: 0; + font-family: JetBrainsMono NF ExtraBold, Roboto, Helvetica, Arial, sans-serif; + font-size: 21px; + min-height: 0; +} + +window#waybar { + background: rgba(0, 0, 0, 0.6); + color: white; +} + +button { + margin: 3px; + padding: 3px; +} + +tooltip { + background: rgba(0, 0, 0, 0.202);/*rgba(43, 48, 59, 0.5);*/ + border: 4px solid white; + border-radius: 10px; +} + +tooltip label { + color: white; +} + +#workspaces button { + margin: 0; + padding: 0; + + background: transparent; + color: #888888; +} + +#workspaces button.focused { + color: white; +} + +#mode, +#clock, +#battery, +#pulseaudio, +#temperature, +#language, +#backlight, +#network, +#tray, +#custom-weather { + padding: 0 10px; +} + +#scratchpad, +#window { + margin-left: 6px; + margin-right: 6px; +} + +#custom-weather.sunny { + color: rgb(215, 215, 0); +} + +#custom-weather.lightrain { + color: lightblue; +} + +#custom-weather.rain, +#custom-weather.heavyrain { + color: blue; +} + +#custom-weather.cloudy, +#custom-weather.fog { + color: gray; +} + +#window { + color: darkred; +} + +#language { + color: cadetblue; +} + +#pulseaudio { + color: darkcyan; +} + +#network { + color: coral; +} + +#temperature { + color: rgb(91, 191, 225); +} + +#backlight { + color: rgb(255, 255, 61); +} + +#clock { + color: aqua; +} + +#battery { + color: rgb(147, 63, 225); +} + +#battery.charging { + color: #26A65B; +} + +@keyframes blink { + to { + color: white; + } +} + +#battery.warning:not(.charging), +#temperature.critical, +#workspaces button.urgent, +#mode { + color: #ff0000; + animation-name: blink; + animation-duration: 0.5s; + animation-timing-function: steps(2); + animation-iteration-count: infinite; + animation-direction: alternate; +} diff --git a/niri/home.nix b/niri/home.nix index 11d56e3..eaf7861 100644 --- a/niri/home.nix +++ b/niri/home.nix @@ -3,6 +3,7 @@ imports = [ inputs.niri.homeModules.niri + ../modules/waybar/home.nix ]; programs.niri = { @@ -23,262 +24,48 @@ # } # ''; config = '' - // 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. + layout "de" } - - // Enable numlock on startup, omitting this setting disables it. numlock } - - // Next sections include libinput settings. - // Omitting settings disables them, or leaves them at their default values. - // All commented-out settings here are examples, not defaults. - touchpad { - // off - tap - // dwt - // dwtp - // drag false - // drag-lock - natural-scroll - // accel-speed 0.2 - // accel-profile "flat" - // scroll-method "two-finger" - // 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%" } - // 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" { - // 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 2 - - // 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 { - // Set gaps around windows in logical pixels. gaps 16 - - // When to center a column when changing focus, options are: - // - "never", default behavior, focusing an off-screen column will keep at the left - // or right edge of the screen. - // - "always", the focused column will always be centered. - // - "on-overflow", focusing a column will center it if it doesn't fit - // together with the previously focused column. center-focused-column "never" - // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. preset-column-widths { - // Proportion sets the width as a fraction of the output width, taking gaps into account. - // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. - // The default preset widths are 1/3, 1/2 and 2/3 of the output. + proportion 0.33333 proportion 0.5 proportion 0.66667 - - // Fixed sets the width in logical pixels exactly. - // fixed 1920 } - // You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between. - // preset-window-heights { } - - // You can change the default width of the new windows. default-column-width { proportion 0.5; } - // If you leave the brackets empty, the windows themselves will decide their initial width. - // default-column-width {} - // By default focus ring and border are rendered as a solid background rectangle - // behind windows. That is, they will show up through semitransparent windows. - // This is because windows using client-side decorations can have an arbitrary shape. - // - // If you don't like that, you should uncomment `prefer-no-csd` below. - // Niri will draw focus ring and border *around* windows that agree to omit their - // client-side decorations. - // - // 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 4 - // 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 "#7fc8ff" - // 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 "#505050" - - // 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" } - // You can also add a border. It's similar to the focus ring, but always visible. border { - // The settings are the same as for the focus ring. - // If you enable the border, you probably want to disable the focus ring. off width 4 active-color "#ffc87f" inactive-color "#505050" - // Color of the border around windows that request your attention. urgent-color "#9b0000" - - // Gradients can use a few different interpolation color spaces. - // For example, this is a pastel rainbow gradient via in="oklch longer hue". - // - // active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue" - - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" } - // You can enable drop shadows for windows. - shadow { - // Uncomment the next line to enable shadows. - // 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. - // - // Note that niri has no way of knowing about the CSD window corner - // radius. It has to assume that windows have square corners, leading to - // shadow artifacts inside the CSD rounded corners. This setting fixes - // those artifacts. - // - // However, instead you may want to set prefer-no-csd and/or - // geometry-corner-radius. Then, niri will know the corner radius and - // draw the shadow correctly, without having to draw it behind the - // window. These will also remove client-side shadows if the window - // draws any. - // - // draw-behind-window true - - // You can change how shadows look. The values below are in logical - // pixels and match the CSS box-shadow properties. - - // Softness controls the shadow blur radius. - softness 30 - - // Spread expands the shadow. - spread 5 - - // Offset moves the shadow relative to the window. - offset x=0 y=5 - - // You can also change the shadow color and opacity. - color "#0007" - } - - // Struts shrink the area occupied by windows, similarly to layer-shell panels. - // You can think of them as a kind of outer gaps. They are set in logical pixels. - // Left and right struts will cause the next window to the side to always be visible. - // Top and bottom struts will simply add outer gaps in addition to the area occupied by - // layer-shell panels and regular gaps. struts { // left 64 // right 64 @@ -287,140 +74,45 @@ } } - // Add lines like this to spawn processes at startup. - // Note that running niri as a session supports xdg-desktop-autostart, - // which may be more convenient to use. - // 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 "hyprpaper" - // 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. - // If the client will specifically ask for CSD, the request will be honored. - // 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 - - // You can change the path where screenshots are saved. - // A ~ at the front will be expanded to the home directory. - // The path is formatted with strftime(3) to give you the screenshot date and time. screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" - // You can also set this to null to disable saving screenshots to disk. - // screenshot-path null - - // Animation settings. - // The wiki explains how to configure individual animations: - // https://yalter.github.io/niri/Configuration:-Animations - animations { - // Uncomment to turn off all animations. - // off - - // Slow down all animations by this factor. Values below 1 speed them up instead. - // slowdown 3.0 - } - - // Window rules let you adjust behavior for individual windows. - // 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: - // - host Firefox (app-id is "firefox") - // - Flatpak Firefox (app-id is "org.mozilla.firefox") - match app-id=r#"firefox$"# title="^Picture-in-Picture$" - open-floating true - } - - // Example: block out two password managers from screen capture. - // (This example rule is commented out with a "/-" in front.) - /-window-rule { - match app-id=r#"^org\.keepassxc\.KeePassXC$"# - match app-id=r#"^org\.gnome\.World\.Secrets$"# - - block-out-from "screen-capture" - - // Use this instead if you want them visible on third-party screenshot tools. - // block-out-from "screencast" - } - - // Example: enable rounded corners for all windows. - // (This example rule is commented out with a "/-" in front.) - /-window-rule { geometry-corner-radius 12 clip-to-geometry true } 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 - // like wev. - // - // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt - // when running as a winit window. - // - // Most actions that you can bind here can also be invoked programmatically with - // `niri msg action do-something`. + Mod+Shift+Minus { show-hotkey-overlay; } - // Mod-Shift-/, which is usually the same as Mod-?, - // shows a list of important hotkeys. - Mod+Shift+Slash { show-hotkey-overlay; } - - // Suggested binds for running programs: terminal, app launcher, screen locker. Mod+T hotkey-overlay-title="Open a Terminal: kitty" { spawn "kitty"; } Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; } - Super+Alt+L hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "hyrplock"; } + Super+L hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "hyrplock"; } - // Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc. - // Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`. - // For example, this is a standard bind to toggle the screen reader (orca). Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; } - // 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. - // "-l 1.0" limits the volume to 100%. XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; } XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; } 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"; } - // Example media keys mapping using playerctl. - // This will work with any MPRIS-enabled media player. XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; } XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; } XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; } XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; } - // Example brightness key mappings for brightnessctl. - // You can use regular spawn with multiple arguments too (to avoid going through "sh"), - // but you need to manually put each argument in separate "" quotes. XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; } XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; } - // Open/close the Overview: a zoomed-out view of workspaces and windows. - // You can also move the mouse into the top-left hot corner, - // or do a four-finger swipe up on a touchpad. Mod+O repeat=false { toggle-overview; } Mod+Q repeat=false { close-window; } @@ -443,13 +135,6 @@ Mod+Ctrl+K { move-window-up; } Mod+Ctrl+L { move-column-right; } - // Alternative commands that move across workspaces when reaching - // the first or last window in a column. - // Mod+J { focus-window-or-workspace-down; } - // Mod+K { focus-window-or-workspace-up; } - // Mod+Ctrl+J { move-window-down-or-to-workspace-down; } - // Mod+Ctrl+K { move-window-up-or-to-workspace-up; } - Mod+Home { focus-column-first; } Mod+End { focus-column-last; } Mod+Ctrl+Home { move-column-to-first; } @@ -473,14 +158,6 @@ Mod+Shift+Ctrl+K { move-column-to-monitor-up; } Mod+Shift+Ctrl+L { move-column-to-monitor-right; } - // Alternatively, there are commands to move just a single window: - // Mod+Shift+Ctrl+Left { move-window-to-monitor-left; } - // ... - - // And you can also move a whole workspace to another monitor: - // Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; } - // ... - Mod+Page_Down { focus-workspace-down; } Mod+Page_Up { focus-workspace-up; } Mod+U { focus-workspace-down; } @@ -490,21 +167,12 @@ Mod+Ctrl+U { move-column-to-workspace-down; } Mod+Ctrl+I { move-column-to-workspace-up; } - // Alternatively, there are commands to move just a single window: - // Mod+Ctrl+Page_Down { move-window-to-workspace-down; } - // ... Mod+Shift+Page_Down { move-workspace-down; } Mod+Shift+Page_Up { move-workspace-up; } Mod+Shift+U { move-workspace-down; } Mod+Shift+I { move-workspace-up; } - // You can bind mouse wheel scroll ticks using the following syntax. - // These binds will change direction based on the natural-scroll setting. - // - // To avoid scrolling through workspaces really fast, you can use - // the cooldown-ms property. The bind will be rate-limited to this value. - // You can set a cooldown on any bind, but it's most useful for the wheel. 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; } @@ -515,30 +183,11 @@ Mod+Ctrl+WheelScrollRight { move-column-right; } Mod+Ctrl+WheelScrollLeft { move-column-left; } - // Usually scrolling up and down with Shift in applications results in - // horizontal scrolling; these binds replicate that. 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; } - // Similarly, you can bind touchpad scroll "ticks". - // Touchpad scrolling is continuous, so for these binds it is split into - // discrete intervals. - // These binds are also affected by touchpad's natural-scroll, so these - // example binds are "inverted", since we have natural-scroll enabled for - // touchpads by default. - // Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; } - // Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; } - - // You can refer to workspaces by index. However, keep in mind that - // niri is a dynamic workspace system, so these commands are kind of - // "best effort". Trying to refer to a workspace index bigger than - // the current workspace count will instead refer to the bottommost - // (empty) workspace. - // - // For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on - // will all refer to the 3rd workspace. Mod+1 { focus-workspace 1; } Mod+2 { focus-workspace 2; } Mod+3 { focus-workspace 3; } @@ -558,17 +207,8 @@ Mod+Ctrl+8 { move-column-to-workspace 8; } Mod+Ctrl+9 { move-column-to-workspace 9; } - // Alternatively, there are commands to move just a single window: - // Mod+Ctrl+1 { move-window-to-workspace 1; } - - // Switches focus between the current and the previous workspace. - // Mod+Tab { focus-workspace-previous; } - - // The following binds move the focused window in and out of a column. - // If the window is alone, they will consume it into the nearby column to the side. - // If the window is already in a column, they will expel it out. - Mod+BracketLeft { consume-or-expel-window-left; } - Mod+BracketRight { consume-or-expel-window-right; } + Mod+udiaeresis { consume-or-expel-window-left; } + Mod+plus { consume-or-expel-window-right; } // Consume one window from the right to the bottom of the focused column. Mod+Comma { consume-window-into-column; } @@ -576,74 +216,37 @@ Mod+Period { expel-window-from-column; } Mod+R { switch-preset-column-width; } - // Cycling through the presets in reverse order is also possible. - // Mod+R { switch-preset-column-width-back; } Mod+Shift+R { switch-preset-window-height; } Mod+Ctrl+R { reset-window-height; } Mod+F { maximize-column; } Mod+Shift+F { fullscreen-window; } - // Expand the focused column to space not taken up by other fully visible columns. - // Makes the column "fill the rest of the space". Mod+Ctrl+F { expand-column-to-available-width; } Mod+C { center-column; } - // Center all fully visible columns on screen. Mod+Ctrl+C { center-visible-columns; } - // Finer width adjustments. - // This command can also: - // * set width in pixels: "1000" - // * adjust width in pixels: "-5" or "+5" - // * set width as a percentage of screen width: "25%" - // * adjust width as a percentage of screen width: "-10%" or "+10%" - // Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0, - // set-column-width "100" will make the column occupy 200 physical screen pixels. - Mod+Minus { set-column-width "-10%"; } - Mod+Equal { set-column-width "+10%"; } + Mod+ssharp { set-column-width "-10%"; } + Mod+dead_acute { set-column-width "+10%"; } - // Finer height adjustments when in column with other windows. - Mod+Shift+Minus { set-window-height "-10%"; } - Mod+Shift+Equal { set-window-height "+10%"; } + Mod+Shift+ssharp { set-window-height "-10%"; } + Mod+Shift+dead_acute { set-window-height "+10%"; } - // Move the focused window between the floating and the tiling layout. Mod+V { toggle-window-floating; } Mod+Shift+V { switch-focus-between-floating-and-tiling; } - // Toggle tabbed column display mode. - // Windows in this column will appear as vertical tabs, - // rather than stacked on top of each other. Mod+W { toggle-column-tabbed-display; } - // Actions to switch layouts. - // Note: if you uncomment these, make sure you do NOT have - // a matching layout switch hotkey configured in xkb options above. - // Having both at once on the same hotkey will break the switching, - // since it will switch twice upon pressing the hotkey (once by xkb, once by niri). - // Mod+Space { switch-layout "next"; } - // Mod+Shift+Space { switch-layout "prev"; } - Print { screenshot; } Ctrl+Print { screenshot-screen; } Alt+Print { screenshot-window; } - // Applications such as remote-desktop clients and software KVM switches may - // request that niri stops processing the keyboard shortcuts defined here - // so they may, for example, forward the key presses as-is to a remote machine. - // It's a good idea to bind an escape hatch to toggle the inhibitor, - // so a buggy application can't hold your session hostage. - // - // The allow-inhibiting=false property can be applied to other binds as well, - // which ensures niri always processes them, even when an inhibitor is active. Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } - // The quit action will show a confirmation dialog to avoid accidental exits. Mod+Shift+E { quit; } Ctrl+Alt+Delete { quit; } - // Powers off the monitors. To turn them back on, do any input like - // moving the mouse or pressing any other key. Mod+Shift+P { power-off-monitors; } } ''; diff --git a/niri/niri.nix b/niri/niri.nix index f960132..a6da5be 100644 --- a/niri/niri.nix +++ b/niri/niri.nix @@ -5,7 +5,7 @@ ../modules/noctalia ../modules/hyprlock ../modules/hyprpaper - ../modules/stylix.nix + ../modules/stylix ]; home-manager.sharedModules = [ @@ -15,8 +15,8 @@ environment.systemPackages = with pkgs; [ mako - waybar fuzzel + waybar ]; # programs = { @@ -29,18 +29,19 @@ #services.xserver.enable = true; #services.xserver.displayManager.sddm.enable = true; -# xdg.portal = { -# enable = true; -# extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; -# }; + xdg.portal = { #Needed for waybar + enable = true; + extraPortals = [ pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-wlr ]; + config.common.default = "*"; + }; #sound.enable = true; #security.rtkit.enable = true; - #services.pipewire = { - # enable = true; - # alsa.enable = true; - # #alsa.support3Bbit = true; - # pulse.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + #alsa.support3Bbit = true; + pulse.enable = true; # jack.enable = true; - #}; + }; } diff --git a/other/discord.app.png b/other/discord.app.png new file mode 100644 index 0000000..392ae64 Binary files /dev/null and b/other/discord.app.png differ diff --git a/plasma/konsave.sh b/plasma/konsave.sh index 57c7b28..103a3ee 100755 --- a/plasma/konsave.sh +++ b/plasma/konsave.sh @@ -28,7 +28,7 @@ echo -e "Use ${RED}'sudo reboot -h 0'${NOCOLOR} to successfully apply the theme, progress_bar 2.5 echo "" -echo -n "Do you want to reboot now? (y/n): " +echo -n "Do you want to reboot now? (Y/n): " read -r answer if [ -z "$answer" ] || [ "$answer" = "y" ] || [ "$answer" = "Y" ]; then echo "Rebooting! ..." diff --git a/plasma/plasma.nix b/plasma/plasma.nix index d7de4b8..fb11104 100644 --- a/plasma/plasma.nix +++ b/plasma/plasma.nix @@ -1,4 +1,15 @@ {config, pkgs, username, ...}: +let + # Define the custom background package with the correct relative path + background-package = pkgs.stdenvNoCC.mkDerivation { + name = "background-image"; + src = ../other/wallpaper2.png; # Place wallpaper.jpg in the same directory as this config file + dontUnpack = true; + installPhase = '' + cp $src $out + ''; + }; +in { imports = [ @@ -44,7 +55,7 @@ }; }; - + virtualisation.waydroid.enable = true; # Enable the X11 windowing system. # You can disable this if you're only using the Wayland session. @@ -77,9 +88,12 @@ environment.systemPackages = with pkgs; [ kdePackages.plymouth-kcm -# (pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" '' -# [General] -# background = "${background-package}" -# '') + (pkgs.writeTextDir "share/sddm/themes/breeze/theme.conf.user" '' + [General] + background = "${background-package}" + '') + xdg-desktop-portal + kdePackages.xdg-desktop-portal-kde + pipewire ]; }