diff --git a/configuration.nix b/configuration.nix index 7ab0471..1f1559d 100644 --- a/configuration.nix +++ b/configuration.nix @@ -34,7 +34,7 @@ nix = { gc = { automatic = true; - options = "--delete-older-than 14d"; + options = "--delete-older-than 7d"; dates = "14:30"; }; extraOptions = '' diff --git a/modules/development.nix b/modules/development.nix index 794629b..144ac4b 100644 --- a/modules/development.nix +++ b/modules/development.nix @@ -5,7 +5,12 @@ services.lorri.enable = true; # Enable virtualisation - virtualisation.libvirtd.enable = true; + virtualisation.libvirtd = { + enable = true; + onBoot = "ignore"; + onShutdown = "shutdown"; + qemuPackage = pkgs.qemu_kvm; + }; # Set up podman virtualisation = { diff --git a/modules/gui.nix b/modules/gui.nix index 1e89e07..51cca14 100644 --- a/modules/gui.nix +++ b/modules/gui.nix @@ -42,6 +42,7 @@ export QT_WAYLAND_DISABLE_WINDOWDECORATION="1" export SDL_VIDEODRIVER=wayland export GTK_THEME=Adapta-Eta + export WLR_DRM_NO_ATOMIC=1 ''; wrapperFeatures.gtk = true; }; @@ -73,4 +74,100 @@ enable = true; pinentryFlavor = "gnome3"; }; + + # Tmux + programs.tmux = { + enable = true; + historyLimit = 5000; + keyMode = "vi"; + shortcut = "x"; + terminal = "screen-256"; + baseIndex = 1; + extraConfig = '' + ## set terminal bell + set -g bell-action any + + # i3 split bindings + bind g split-window -h + bind v split-window -v + unbind '"' + unbind % + unbind m + + # vim split navigation + bind h select-pane -L + bind j select-pane -D + bind k select-pane -U + bind l select-pane -R + + # equalize splits with x + unbind space + bind space select-layout even-vertical + + # window switching + unbind n + unbind c + bind c new-window + unbind , + unbind . + bind , previous-window + bind . next-window + bind-key n command-prompt "rename-window '%%'" + + # change kill window bind + unbind & + unbind x + bind x kill-session + + # switch to last session + bind S switch-client -l + + # force a reload of the config file + unbind r + bind r source-file ~/.tmux.conf + + set -g status on + set -g pane-base-index 1 + set -g base-index 1 + set -g set-titles on + set -g aggressive-resize on + set-option -g set-titles-string '#{pane_current_command}' + set-option -g visual-activity on + set-option -g status-position bottom + set-option -g renumber-windows on + set-window-option -g monitor-activity off + set-option -g allow-rename off + + # copy mode + unbind [ + bind Escape copy-mode + bind-key -T copy-mode-vi 'v' send -X begin-selection # Begin selection in copy mode. + bind-key -T copy-mode-vi 'C-v' send -X rectangle-toggle # Begin selection in copy mode. + bind-key -T copy-mode-vi 'y' send -X copy-selection # Yank selection in copy mode. + + set -g mouse on + bind -T root WheelUpPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; copy-mode -e; send-keys -M" + bind -T root WheelDownPane if-shell -F -t = "#{alternate_on}" "send-keys -M" "select-pane -t =; send-keys -M" + + # Colorscheme + set -g status-justify "centre" + set -g status "on" + set -g status-left-style "none" + set -g message-command-style "fg=#c6c8d1,bg=#2e3244" + set -g status-right-style "none" + set -g pane-active-border-style "fg=#454b68" + set -g status-style "none,bg=#1e2132" + set -g message-style "fg=#c6c8d1,bg=#2e3244" + set -g pane-border-style "fg=#2e3244" + set -g status-right-length "100" + set -g status-left-length "100" + setw -g window-status-activity-style "none,fg=#454b68,bg=#1e2132" + setw -g window-status-separator "" + setw -g window-status-style "none,fg=#c6c8d1,bg=#1e2132" + set -g status-left "#[fg=#c6c8d1,bg=#454b68,bold] #S #[fg=#454b68,bg=#2e3244,nobold,nounderscore,noitalics]#[fg=#c6c8d1,bg=#1e2132] #[fg=#1e2132,bg=#1e2132,nobold,nounderscore,noitalics]" + set -g status-right "#[fg=#1e2132,bg=#1e2132,nobold,nounderscore,noitalics]#[fg=#c6c8d1,bg=#1e2132] #[fg=#2e3244,bg=#1e2132,nobold,nounderscore,noitalics]#[fg=#c6c8d1,bg=#2e3244] %b %d %Y #[fg=#454b68,bg=#2e3244,nobold,nounderscore,noitalics]#[fg=#c6c8d1,bg=#454b68,bold] %R #{prefix_highlight} " + setw -g window-status-format "#[fg=#1e2132,bg=#1e2132,nobold,nounderscore,noitalics] #[fg=#c6c8d1] #I  #W #[fg=#1e2132,bg=#1e2132,nobold,nounderscore,noitalics]" + setw -g window-status-current-format "#[fg=#1e2132,bg=#2e3244,nobold,nounderscore,noitalics]#[fg=#c6c8d1,bg=#2e3244] #I  #W #[fg=#2e3244,bg=#1e2132,nobold,nounderscore,noitalics]" + ''; + }; } diff --git a/modules/software.nix b/modules/software.nix index 41b5000..e8d801e 100644 --- a/modules/software.nix +++ b/modules/software.nix @@ -40,6 +40,7 @@ mopidy ncmpcpp mpc_cli + alsa-firmware # Productivity fff zathura @@ -57,6 +58,8 @@ urlscan # Media gimp + mpv + nodePackages.webtorrent-cli # File management zip unzip