From cf5af467fa2739ca3b102405d3d379957827e6ed Mon Sep 17 00:00:00 2001 From: harry123 Date: Wed, 7 May 2025 19:51:31 +0200 Subject: [PATCH] more niri related config --- flake.nix | 2 +- home-manager/dotfiles/niri/config.kdl | 33 +++- home-manager/dotfiles/waybar/config.jsonc | 7 +- home-manager/dotfiles/waybar/style.css | 54 +++++- home-manager/home.nix | 160 ++++++++++-------- home-manager/sedated-home.nix | 0 hosts/goober/configuration.nix | 7 +- .../goober/features/software/workstation.nix | 23 +++ 8 files changed, 199 insertions(+), 87 deletions(-) delete mode 100644 home-manager/sedated-home.nix diff --git a/flake.nix b/flake.nix index 6ac7e5b..9d89693 100644 --- a/flake.nix +++ b/flake.nix @@ -109,7 +109,7 @@ home-manager.users.${username} = { imports = [ ./home-manager/home.nix - catppuccin.homeManagerModules.catppuccin + catppuccin.homeModules.catppuccin ]; }; home-manager.extraSpecialArgs = { inherit inputs; }; diff --git a/home-manager/dotfiles/niri/config.kdl b/home-manager/dotfiles/niri/config.kdl index 649e664..de199df 100644 --- a/home-manager/dotfiles/niri/config.kdl +++ b/home-manager/dotfiles/niri/config.kdl @@ -149,7 +149,7 @@ layout { // off // How many logical pixels the ring extends out from the windows. - width 4 + width 2 // Colors can be set in a variety of ways: // - CSS named colors: "red" @@ -157,7 +157,7 @@ layout { // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. // Color of the ring on the active monitor. - active-color "#7fc8ff" + active-color "#7287fd" // Color of the ring on inactive monitors. inactive-color "#505050" @@ -295,6 +295,7 @@ window-rule { // - Flatpak Firefox (app-id is "org.mozilla.firefox") match app-id=r#"firefox$"# title="^Picture-in-Picture$" match app-id=r#"zen$"# title="^Picture-in-Picture$" + match app-id=r#"zen-beta$"# title="^Picture-in-Picture$" open-floating true } @@ -303,6 +304,7 @@ window-rule { window-rule { match app-id=r#"^org\.keepassxc\.KeePassXC$"# match app-id=r#"^org\.gnome\.World\.Secrets$"# + match app-id=r#"Bitwarden"# block-out-from "screen-capture" @@ -333,7 +335,7 @@ binds { Mod+Shift+Slash { show-hotkey-overlay; } // Suggested binds for running programs: terminal, app launcher, screen locker. - Mod+Return { spawn "foot"; } + Mod+Return { spawn "footclient"; } Mod+D { spawn "fuzzel"; } Super+Alt+L { spawn "swaylock"; } @@ -573,3 +575,28 @@ spawn-at-startup "xwayland-satellite" environment { DISPLAY ":0" } + +// apps to launch at startup +spawn-at-startup "zen-beta" +spawn-at-startup "obsidian" +spawn-at-startup "discord" +spawn-at-startup "beeper" + +clipboard { + disable-primary +} + +workspace "code" +workspace "internet" +workspace "chat" + +window-rule { + match at-startup=true app-id=r#"^discord$"# + match at-startup=true app-id=r#"^Beeper$"# + open-on-workspace "chat" +} + +window-rule { + match at-startup=true app-id=r#"zen-beta$"# + open-on-workspace "internet" +} diff --git a/home-manager/dotfiles/waybar/config.jsonc b/home-manager/dotfiles/waybar/config.jsonc index d95d9cb..db24aa4 100644 --- a/home-manager/dotfiles/waybar/config.jsonc +++ b/home-manager/dotfiles/waybar/config.jsonc @@ -1,6 +1,6 @@ { "layer": "top", - "modules-left": ["custom/launcher", "niri/workspaces"], + "modules-left": ["custom/launcher", "niri/workspaces", "niri/window"], "modules-center": [], "modules-right": [ "tray", @@ -46,7 +46,7 @@ "format-wifi": " ", "format-ethernet": "󰈀", "format-disconnected": "", //An empty format will hide the module. - "tooltip-format": "{ifname} via {gwaddr} 󰈀", + "tooltip-format": "{ifname} via {gwaddr} 󰈀 ", "tooltip-format-wifi": "{essid} ({signalStrength}%)  ", "tooltip-format-ethernet": "{ifname}  ", "tooltip-format-disconnected": "Disconnected", @@ -77,5 +77,8 @@ "on-click": "swaync-client -t -sw", "on-click-right": "swaync-client -d -sw", "escape": true + }, + "tray": { + "spacing": 10 } } diff --git a/home-manager/dotfiles/waybar/style.css b/home-manager/dotfiles/waybar/style.css index 5e04083..8f7753b 100644 --- a/home-manager/dotfiles/waybar/style.css +++ b/home-manager/dotfiles/waybar/style.css @@ -10,16 +10,15 @@ text-shadow: none; transition: none; box-shadow: none; - font-family: "DM Sans", "CodeNewRoman Nerd Font", sans-serif; font-weight: bold; font-size: 12px; - color: @text; } -window#waybar { - background-color: @base; - padding-right: 12px; - /*border: solid 2px @primary;*/ +#waybar { + font-family: "DM Sans", "CodeNewRoman Nerd Font", sans-serif; + padding: 4px 8px; + background-color: transparent; + border-radius: 12px; min-height: 14px; /* set waybar's height to 14px */ font-size: 14px; /* set only the font size to be bigger, which in turn will adjust the height of other elements */ } @@ -28,8 +27,14 @@ window#waybar { #battery, #cpu, #wireplumber, -#bluetooth { - padding: 0 12px; +#bluetooth, +#network { + padding: 4px 12px; + background-color: @surface0; + color: @text; +} + +#clock { } #workspaces button { @@ -39,14 +44,20 @@ window#waybar { #workspaces button:hover { box-shadow: inherit; text-shadow: inherit; + background-color: @surface1; + border-radius: 12px; } #workspaces button.focused { - background-color: #000; + background-color: @surface1; color: #fff; + border-radius: 12px; } #workspaces { + background-color: @surface0; + padding: 2px 4px; + border-radius: 12px; } #privacy-item.screenshare { @@ -58,3 +69,28 @@ window#waybar { color: #000; background-color: #ffae42; } + +#network { + border-radius: 12px 0 0 12px; +} + +#clock { + border-radius: 0 12px 12px 0; +} + +#tray { + background-color: @surface0; + border-radius: 12px; + padding: 2px 4px; + margin-right: 16px; +} + +#window { + margin-left: 16px; + background-color: @surface0; + font-family: "light"; + + border-radius: 12px; + padding: 2px 4px; + color: @text; +} diff --git a/home-manager/home.nix b/home-manager/home.nix index 0a633a9..9e6cfa8 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -24,92 +24,85 @@ # release notes. home.stateVersion = "24.05"; # Please read the comment before changing. - nixpkgs.config.allowUnfreePredicate = - pkg: - builtins.elem (lib.getName pkg) [ - "vscode" - "tetrio-desktop" - "beeper" - ]; - # The home.packages option allows you to install Nix packages into your # environment. - home.packages = - with pkgs; - [ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.hello + home.packages = with pkgs; [ + # # Adds the 'hello' command to your environment. It prints a friendly + # # "Hello, world!" when run. + # pkgs.hello - beeper - nerd-fonts.code-new-roman - ffmpegthumbnailer - xfce.tumbler - dm-sans - zoxide - btop - bitwarden-cli - weechat - cava - hyfetch - kittysay - nextcloud-client - thunderbird-bin - feh - waybar - p7zip + beeper + nerd-fonts.code-new-roman + ffmpegthumbnailer + xfce.tumbler + dm-sans + zoxide + btop + bitwarden-cli + weechat + cava + hyfetch + kittysay + nextcloud-client + thunderbird-bin + feh + waybar + p7zip - libreoffice-qt - tetrio-desktop + libreoffice-qt + tetrio-desktop - playerctl - wf-recorder + playerctl + wf-recorder - file - osu-lazer-bin + file + osu-lazer-bin - qbittorrent + qbittorrent - i2pd - ripgrep - vscode + i2pd + ripgrep + vscode - zathura - tor-browser + zathura + tor-browser - gammastep - lazygit - gimp-with-plugins - fzf - lf - why3 - alt-ergo - cvc4 - z3 - prismlauncher + gammastep + lazygit + gimp-with-plugins + fzf + lf - wofi - wofi-emoji - obsidian + prismlauncher - audacious - audacious-plugins + wofi + wofi-emoji + obsidian - libsixel - unzip - p7zip + audacious + audacious-plugins - libsixel - unzip - p7zip + libsixel + unzip + p7zip - nixfmt-rfc-style - fuzzel - zsh-syntax-highlighting - ] - ++ lib.optionals pkgs.stdenv.isLinux [ - kdePackages.dolphin - ]; + libsixel + unzip + p7zip + + nixfmt-rfc-style + fuzzel + zsh-syntax-highlighting + + obsidian + papirus-icon-theme + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (pkgs.writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + ]; # Home Manager is pretty good at managing dotfiles. The primary way to manage # plain files is through 'home.file'. @@ -137,11 +130,13 @@ programs.direnv = { enable = true; enableBashIntegration = true; # see note on other shells below + enableZshIntegration = true; nix-direnv.enable = true; }; programs.zoxide.enable = true; programs.zoxide.enableBashIntegration = true; + programs.zoxide.enableZshIntegration = true; programs.zoxide.options = [ "--cmd cd" ]; @@ -230,6 +225,14 @@ }; */ + gtk.iconTheme = { + package = pkgs.papirus-icon-theme; + }; + + gtk.theme = { + package = pkgs.catppuccin-gtk; + }; + programs.foot = { enable = true; server.enable = true; @@ -245,6 +248,8 @@ swaylock.enable = true; }; + home.shell.enableZshIntegration = true; + programs.zsh = { enable = true; enableCompletion = true; @@ -265,6 +270,19 @@ "pkill *" "cp *" ]; + + plugins = [ + { + name = "vi-mode"; + src = pkgs.zsh-vi-mode; + file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; + } + { + name = "powerlevel10k"; + src = pkgs.zsh-powerlevel10k; + file = "share/zsh-powerlevel10k/powerlevel10k.zsh-theme"; + } + ]; }; # Let Home Manager install and manage itself. diff --git a/home-manager/sedated-home.nix b/home-manager/sedated-home.nix deleted file mode 100644 index e69de29..0000000 diff --git a/hosts/goober/configuration.nix b/hosts/goober/configuration.nix index 550e443..c3931e8 100644 --- a/hosts/goober/configuration.nix +++ b/hosts/goober/configuration.nix @@ -65,7 +65,7 @@ "flakes" ]; # Configure keymap in X11 - # services.xserver.xkb.layout = "us"; + services.xserver.xkb.layout = "fr"; # services.xserver.xkb.options = "eurosign:e,caps:escape"; # Enable CUPS to print documents. @@ -74,14 +74,19 @@ # Enable touchpad support (enabled default in most desktopManager). # services.libinput.enable = true; + programs.zsh.enable = true; + environment.pathsToLink = [ "/share/zsh" ]; + # Define a user account. Don't forget to set a password with ‘passwd’. users.users.harry123 = { isNormalUser = true; + shell = pkgs.zsh; extraGroups = [ "wheel" "audio" "video" "networkmanager" + "podman" ]; packages = with pkgs; [ diff --git a/hosts/goober/features/software/workstation.nix b/hosts/goober/features/software/workstation.nix index 11a8b96..0daaf1a 100644 --- a/hosts/goober/features/software/workstation.nix +++ b/hosts/goober/features/software/workstation.nix @@ -7,7 +7,11 @@ pkg: builtins.elem (lib.getName pkg) [ "davinci-resolve" + "vscode" + "tetrio-desktop" + "beeper" ]; + environment.systemPackages = with pkgs; [ zathura # music editing software @@ -40,5 +44,24 @@ eclipses.eclipse-java # school wants us to use it... nil jetbrains.idea-ultimate + + why3 + alt-ergo + cvc4 + z3 + bitwarden + kicad ]; + + programs.kdeconnect.enable = true; + virtualisation.containers.enable = true; + virtualisation = { + podman = { + enable = true; + # Create a `docker` alias for podman, to use it as a drop-in replacement + dockerCompat = true; + # Required for containers under podman-compose to be able to talk to each other. + defaultNetwork.settings.dns_enabled = true; + }; + }; }