diff --git a/config/fuzzel/fuzzel.ini b/config/fuzzel/fuzzel.ini new file mode 100644 index 0000000..8af83ae --- /dev/null +++ b/config/fuzzel/fuzzel.ini @@ -0,0 +1,17 @@ +[main] +terminal=foot +width=30 +lines=10 +anchor=center + +[colors] +background=0a0a0aff +text=f3eeeaff +match=cd0a00ff +selection=cd0a00ff +selection-text=f3eeeaff +border=cd0a00ff + +[border] +width=2 +radius=4 diff --git a/config/sway/config b/config/sway/config index 67fe90a..c910609 100644 --- a/config/sway/config +++ b/config/sway/config @@ -1,4 +1,5 @@ set $mod Mod4 +floating_modifier $mod normal set $left h set $right l set $up k @@ -8,11 +9,15 @@ set $white #f3eeea set $black #0a0a0a set $term foot -set $menu wmenu-run +set $menu fuzzel +exec systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY +exec dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP DISPLAY exec "foot --server" +exec lxqt-policykit-agent +exec mako -output * bg ~/Pictures/henri.jpg fill +output * bg ~/Pictures/nixgirl.png fill input type:keyboard { xkb_layout "se" @@ -23,6 +28,7 @@ input type:keyboard { input type:touchpad { tap enabled natural_scroll enabled + scroll_factor 0.3 } default_border pixel @@ -70,10 +76,10 @@ bindsym $mod+Shift+8 move container to workspace number 8 mode "resize" { - bindsym Right resize shrink width 50px - bindsym Up resize grow height 50px - bindsym Down resize shrink height 50px - bindsym Left resize grow width 50px + bindsym Right resize grow width 50px + bindsym Left resize shrink width 50px + bindsym Down resize grow height 50px + bindsym Up resize shrink height 50px bindsym Return mode "default" bindsym Escape mode "default" bindsym $mod+r mode "default" @@ -81,13 +87,20 @@ mode "resize" { bindsym $mod+r mode "resize" gaps inner 10 -exec_always pkill waybar; waybar +exec_always sh -c 'pkill waybar; waybar' +bindsym XF86AudioRaiseVolume exec wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+ +bindsym XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- +bindsym XF86AudioMute exec wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle + +bindsym XF86MonBrightnessUp exec brightnessctl set 5%+ +bindsym XF86MonBrightnessDown exec brightnessctl set 5%- + bindsym $mod+Shift+s exec 'grim -l 0 -g "$(slurp)" - | wl-copy' -bindsym $mod+Alt+s exec 'mkdir -p ~/Pictures/Screenshots && grim -l 0 -g "$(slurp)" ~/Pictures/Screenshots/$(date +"%Y-%m-%d_%H-%M-%S").png' +bindsym $mod+Alt+s exec 'mkdir -p ~/Pictures/Screenshots && grim -l 0 -g "$(slurp)" - | satty --filename - --output-filename ~/Pictures/Screenshots/$(date +"%Y-%m-%d_%H-%M-%S").png' exec swayidle -w \ - timeout 300 'swaylock -f -c 1a1b26' \ - timeout 600 'swaymsg "output * dpms off"' \ - resume 'swaymsg "output * dpms on"' \ - before-sleep 'swaylock -f -c 1a1b26' + timeout 300 'swaylock -f -c 0a0a0a' \ + timeout 600 'swaymsg "output * dpms off"; wpctl set-mute @DEFAULT_AUDIO_SINK@ 1' \ + resume 'swaymsg "output * dpms on"; wpctl set-mute @DEFAULT_AUDIO_SINK@ 0' \ + before-sleep 'swaylock -f -c 0a0a0a' diff --git a/home.nix b/home.nix index 969cc99..af90af0 100644 --- a/home.nix +++ b/home.nix @@ -16,10 +16,18 @@ programs.zsh = { enable = true; + syntaxHighlighting.enable = true; + plugins = [ + { + name = "fzf-tab"; + src = "${pkgs.zsh-fzf-tab}/share/fzf-tab"; + } + ]; shellAliases = { n = "nvim"; rebuild = "sudo nixos-rebuild switch --flake ~/nixos-dotfiles"; tree = "eza --tree --level=2"; + ls = "eza --icons --all --header --long --git"; }; history = { size = 10000; @@ -29,6 +37,8 @@ extended = true; }; initContent = '' + zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' + autoload -Uz up-line-or-beginning-search down-line-or-beginning-search zle -N up-line-or-beginning-search zle -N down-line-or-beginning-search @@ -105,7 +115,7 @@ programs.eza = { enable = true; - enableZshIntegration = true; + enableZshIntegration = false; git = true; icons = "auto"; }; @@ -121,8 +131,34 @@ # ── Git ───────────────────────────────────────────────────────────────────── programs.git = { enable = true; - settings.user.name = "ulve"; - settings.user.email = "johansson.olov@gmail.com"; + settings = { + user.name = "ulve"; + user.email = "johansson.olov@gmail.com"; + }; + includes = [ + { + condition = "gitdir:~/code/"; + path = "~/.config/git/work"; + } + ]; + }; + + home.file.".config/git/work".text = '' + [user] + name = olov johansson + email = olov.johansson@futureordering.com + [credential "https://dev.azure.com"] + helper = manager + useHttpPath = true + [credential] + credentialStore = gpg + ''; + + programs.gpg.enable = true; + + services.gpg-agent = { + enable = true; + pinentryPackage = pkgs.pinentry-curses; }; programs.delta = { @@ -134,14 +170,20 @@ programs.ssh = { enable = true; enableDefaultConfig = false; - settings = { + matchBlocks = { "codeberg.org" = { - IdentityFile = "~/.ssh/id_ed25519_codeberg"; + identityFile = "~/.ssh/id_ed25519_codeberg"; + }; + "macbook" = { + hostname = "192.168.50.205"; + user = "olovjohansson"; + identityFile = "~/.ssh/id_ed25519"; }; }; }; # ── Config files ───────────────────────────────────────────────────────────── + xdg.configFile."fuzzel/fuzzel.ini".source = ./config/fuzzel/fuzzel.ini; xdg.configFile."qtile".source = ./config/qtile; xdg.configFile."nvim" = { source = config.lib.file.mkOutOfStoreSymlink "/home/ulve/nixos-dotfiles/config/dottily"; @@ -150,10 +192,28 @@ xdg.configFile."waybar".source = ./config/waybar; xdg.configFile."foot".source = ./config/foot; + # ── Notifications ──────────────────────────────────────────────────────────── + services.mako = { + enable = true; + settings = { + background-color = "#0a0a0a"; + text-color = "#f3eeea"; + border-color = "#cd0a00"; + border-radius = 4; + border-size = 2; + default-timeout = 5000; + max-icon-size = 48; + padding = "10,14"; + }; + }; + # ── Packages ───────────────────────────────────────────────────────────────── home.packages = with pkgs; [ # general claude-code # ai coding assistant + azure-cli # az cli + git-credential-manager # git credential helper (azure devops PAT) + pass # password store (used by GCM gpg backend) brave # browser fastfetch # vanity jq # json processor @@ -161,14 +221,17 @@ teams-for-linux # teams # desktop / wayland + libnotify # notify-send wl-clipboard # wayland copy utils slurp # select region in wayland for copy grim # grab images from wayland + satty # screenshot annotation wlogout # logout menu - wmenu # dynamic menu + fuzzel # wayland launcher swaylock # lock screen swayidle # idle management (dims/locks/sleeps) waybar # status bar with left/center/right sections + lxqt.lxqt-policykit # polkit authentication agent telegram-desktop # Messaging signal-desktop # Messaging