diff --git a/apply.sh b/apply.sh index e32d3a5..c0241f4 100755 --- a/apply.sh +++ b/apply.sh @@ -1,4 +1,4 @@ -#!/usr/bin/env zsh +#!/usr/bin/env bash sudo rsync -ah --delete --progress `pwd`/ /root/nixos/ sudo rm /etc/nixos/configuration.nix diff --git a/configs/common.nix b/configs/common.nix index 237b0c0..1e0b9b4 100644 --- a/configs/common.nix +++ b/configs/common.nix @@ -74,21 +74,24 @@ in manpages ncdu neofetch + nix-du nmap nodejs pciutils pstree + ranger ruby sshfs tealdeer tree + unixtools.xxd unzip usbutils wget youtube-dl zsh - unixtools.xxd - ranger + graphviz + nix-tree ]; documentation.enable = false; diff --git a/configs/desktop.nix b/configs/desktop.nix deleted file mode 100644 index 0fd90ac..0000000 --- a/configs/desktop.nix +++ /dev/null @@ -1,136 +0,0 @@ -{ pkgs, ... }: - -{ - environment.etc.bspwmrc = { - mode = "0645"; - text = '' - #!/usr/bin/env bash - # spread desktops - desktops=10 - count=$(xrandr -q | grep -c ' connected') - i=1 - for m in $(xrandr -q | grep ' connected' | awk '{print $1}'); do - sequence=$(seq -s ' ' $(((1+(i-1)*desktops/count))) $((i*desktops/count))) - bspc monitor "$m" -d $(echo ''${sequence//10/0}) - i=$((i+1)) - done - # if [ -e "/etc/X11/Xresources" ]; then - # xrdb /etc/X11/Xresources - # fi - # if [ -e "$HOME/.Xresources" ]; then - # xrdb -merge "$HOME/.Xresources" - # fi - # # polybar - # for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do - # MONITOR=$m ${pkgs.polybar}/bin/polybar --reload default -c /etc/polybar.conf & - # done - - # pointer - xsetroot -cursor_name left_ptr - # turn off blanking - # xset -dpms - # xset s off - # xset s noblank - # node ~/.config/bspwm/window.js & - - bspc config border_width 4 - bspc config window_gap 5 - bspc config top_padding 0 - bspc config left_padding 0 - bspc config right_padding 0 - bspc config bottom_padding 0 - bspc config split_ratio 0.50 - bspc config borderless_monocle true - bspc config single_monocle true - bspc config gapless_monocle true - bspc config focus_follows_pointer true - bspc config pointer_follows_monitor true - bspc config pointer_follows_focus false - bspc config center_pseudo_tiled true - bspc config automatic_scheme alternate - bspc config remove_unplugged_monitors true - bspc config remove_disabled_monitors true - - bspc rule -a Gnome-calculator state=floating - - bspc config normal_border_color "#333333" - bspc config focused_border_color "#666666" - bspc config presel_feedback_color "#000000" - - bspc wm --adopt-orphans - ''; - }; - - environment.etc.sxhkdrc = { - text = '' - #show time - super + z - notify-send Time $(date '+%H:%M') - #show Battery - super + x - notify-send Battery $(cat /sys/class/power_supply/BAT0/capacity)% - alt + Tab - rofi -show window - #Mute - XF86AudioMute - pulseaudio-ctl mute - XF86AudioLowerVolume - pulseaudio-ctl down - XF86AudioRaiseVolume - pulseaudio-ctl up - #XF86MonBrightnessUp - # lux -a 20% - #XF86MonBrightnessDown - # lux -s 20% - super + Return - kitty - super + shift + Return - rofi -show drun - super + Escape - pkill -USR1 -x sxhkd - #cycle windows - super {_,shift + }Tab - bspc node -f {next,prev} - super + shift + c - bspc node -c - super + a - bspc node @/ --flip vertical - super + d - layer=normal; \ - bspc query -N -n "focused.$\{layer\}" && layer=below; \ - bspc node -l "$layer" - super + {s,f,k} - state={floating,fullscreen,pseudo_tiled}; \ - bspc query -N -n "focused.$\{state\}" && state=tiled; \ - bspc node -t "$state" - super + alt + {Left,Down,Up,Right} - bspc node -p {west,south,north,east} - super + ctrl + {Left,Right,Up,Down} - xdo move {-x -50,-x +50,-y -50,-y +50} - super + ctrl + alt + {Left,Right,Up,Down} - xdo resize {-w -50,-w +50,-h -50,-h +50} - super + {_,shift + }{Left,Down,Up,Right} - bspc node -{f,s} {west,south,north,east} - super + m - bspc node -s biggest - super + l - ~/.bin/lock - #super + y - # bspc node -n last.!automatic - super + ctrl + space - bspc node -p cancel - super + apostrophe - bspc node -s last - super + ctrl + comma - bspc node @/ --rotate 90 - super + shift + comma - bspc node @/ --circulate forward - #super + shift + x - # bspc wm -d > "$BSPWM_STATE" && bspc quit - super + {1-9,0} - bspc desktop -f '{I,II,III,IV,V,VI,VII,VIII,IX,X}' && notify-send `bspc query -D -d --names` - super + shift + {1-9,0} - bspc node -d '{I,II,III,IV,V,VI,VII,VIII,IX,X}' - ''; - }; -} diff --git a/configs/gui.nix b/configs/gui.nix index eabea1f..5534933 100644 --- a/configs/gui.nix +++ b/configs/gui.nix @@ -16,65 +16,48 @@ }; environment.systemPackages = with pkgs; [ - ponymix - libsecret - baobab barrier - blueberry bspwm chromium cura + cypress dunst - elementary-xfce-icon-theme etcher evince firefox font-manager fslint + fswebcam glxinfo - gnome.eog - gnome.gnome-calculator - gnome.seahorse - gnome.file-roller - gnome.gnome-boxes gparted insomnia jellyfin-media-player jellyfin-mpv-shim - juno-theme kdenlive keepassxc libnotify libreoffice + libsecret lightlocker - lutris mangohud meld - minecraft mpv + networkmanager-openconnect nextcloud-client + openconnect pantheon.elementary-gtk-theme pantheon.elementary-icon-theme - vimix-gtk-themes - polybar + pinta + ponymix prusa-slicer pulseaudio-ctl - pinta - solaar - sxhkd - teams - transmission-gtk - virtmanager - vulkan-tools - openconnect - networkmanager-openconnect - cypress - gnome.cheese - megapixels - obs-studio - fswebcam python39Packages.python-miio python39Packages.pyyaml + solaar + sxhkd + virtmanager + vulkan-tools + winetricks ]; programs = { @@ -173,7 +156,7 @@ name = "Mojave-dark"; }; }; - defaultSession = "bspwm"; + defaultSession = "xsession"; session = [{ manage = "desktop"; name = "bspwm"; @@ -182,6 +165,10 @@ ${pkgs.sxhkd}/bin/sxhkd -c /etc/sxhkdrc & ${pkgs.xfce.xfce4-session}/bin/xfce4-session ''; + } { + manage = "desktop"; + name = "xsession"; + start = ''exec $HOME/.xsession''; }]; }; diff --git a/configs/libvirt.nix b/configs/libvirt.nix index 016918e..6be902f 100644 --- a/configs/libvirt.nix +++ b/configs/libvirt.nix @@ -8,4 +8,6 @@ }; spiceUSBRedirection.enable = true; }; + + environment.systemPackages = with pkgs; [ proot ]; } diff --git a/configs/user-gui.nix b/configs/user-gui.nix index bfc326f..7e5457d 100644 --- a/configs/user-gui.nix +++ b/configs/user-gui.nix @@ -11,10 +11,26 @@ }; }; packages = with pkgs; [ - spotify - signal-desktop bitwarden + gnome.eog + gnome.file-roller + gnome.gnome-calculator + gnome.seahorse + gnome.cheese + homebank + rpi-imager + signal-desktop + spotify + steam teams + unrar + wine + baobab + steam-tui + blueberry + lutris + teams + arandr ]; }; @@ -26,6 +42,55 @@ }; }; + gtk = { + enable = true; + font = { + name = "Liberation Sans Regular"; + size = 12; + }; + gtk3 = { + bookmarks = [ + "file:///home/alex/Downloads" + "file:///home/alex/Nextcloud" + "file:///mnt/second" + "smb://192.168.0.100/storage/" + "file:///home/alex/Workspace" + "file:///home/alex/3D%20Print" + "file:///home/alex/Sync" + ]; + extraConfig = { + gtk-application-prefer-dark-theme = 1; + }; + extraCss = '' + decoration + { + border-radius: 0px 0px 0 0; + border-width: 0px; + /*box-shadow: 1px 12px 12px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(0, 0, 0, 0.18);*/ + box-shadow: none; + margin: 0px; + } + + decoration:backdrop + { + border-radius: 0px 0px 0 0; + border-width: 0px; + /*box-shadow: 1px 12px 12px 12px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(0, 0, 0, 0.18);*/ + box-shadow: none; + margin: 0px; + } + ''; + }; + iconTheme = { + package = pkgs.pantheon.elementary-icon-theme; + name = "elementary"; + }; + theme = { + package = pkgs.pantheon.elementary-gtk-theme; + name = "elementary"; + }; + }; + programs = { vscode = { enable = true; @@ -112,10 +177,16 @@ ''; }; - zsh = { - sessionVariables = { - SSH_AUTH_SOCK = "/run/user/1000/keyring/ssh"; - }; + # zsh = { + # sessionVariables = { + # SSH_AUTH_SOCK = "/run/user/1000/keyring/ssh"; + # }; + # }; + + keychain = { + enable = true; + enableXsessionIntegration = true; + enableZshIntegration = true; }; }; @@ -206,8 +277,13 @@ "super {_,shift + }Tab" = "bspc node -f {next,prev}"; "super + shift + c" = "bspc node -c"; "super + a" = "bspc node @/ --flip vertical"; - "super + d" = "layer=normal; bspc query -N -n 'focused.$\{layer\}' && layer=below; bspc node -l '$layer'"; - "super + {s,f,k}" = "state={floating,fullscreen,pseudo_tiled}; bspc query -N -n 'focused.$\{state\}' && state=tiled; bspc node -t '$state'"; + "super + d" = ''layer=normal; \ + bspc query -N -n "focused.$\{layer\}" && layer=below; \ + bspc node -l "$layer"''; + "super + {s,f,k}" = + ''state={floating,fullscreen,pseudo_tiled}; \ + bspc query -N -n "focused.$\{state\}" && state=tiled; \ + bspc node -t "$state" ''; "super + alt + {Left,Down,Up,Right}" = "bspc node -p {west,south,north,east}"; "super + ctrl + {Left,Right,Up,Down}" = "xdo move {-x -50,-x +50,-y -50,-y +50}"; "super + ctrl + alt + {Left,Right,Up,Down}" = "xdo resize {-w -50,-w +50,-h -50,-h +50}"; @@ -223,6 +299,7 @@ "XF86AudioMute" = "pulseaudio-ctl mute"; "XF86AudioLowerVolume" = "pulseaudio-ctl down"; "XF86AudioRaiseVolume" = "pulseaudio-ctl up"; + "Print" = "flameshot gui"; }; }; @@ -232,9 +309,62 @@ dawnTime = "06:30-07:00"; }; + screen-locker = { + enable = true; + enableDetectSleep = true; + inactiveInterval = 30; + lockCmd = "light-locker-command -l"; + }; flameshot.enable = true; }; + xresources.properties = { + "Xft.dpi" = 120; + }; + + xsession = { + enable = true; + pointerCursor = { + defaultCursor = "left_ptr"; + name = "elementary"; + package = pkgs.pantheon.elementary-icon-theme; + }; + windowManager = { + bspwm = { + enable = true; + extraConfig = '' + bspc wm --adopt-orphans + + bspc subscribe monitor_add monitor_remove| while read -r a event; do + node /home/alex/Sync/windows.js + done & + ''; + settings = { + border_width = 4; + window_gap = 5; + top_padding = 0; + left_padding = 0; + right_padding = 0; + bottom_padding = 0; + split_ratio = 0.50; + borderless_monocle = true; + single_monocle = true; + gapless_monocle = true; + focus_follows_pointer = true; + pointer_follows_monitor = true; + pointer_follows_focus = false; + center_pseudo_tiled = true; + automatic_scheme = "alternate"; + remove_unplugged_monitors = true; + remove_disabled_monitors = true; + normal_border_color = "#333333"; + focused_border_color = "#666666"; + presel_feedback_color = "#000000"; + }; + }; + }; + }; + # manuals not needed manual.html.enable = false; manual.json.enable = false; diff --git a/configs/user.nix b/configs/user.nix index 5eb12bb..858f0be 100644 --- a/configs/user.nix +++ b/configs/user.nix @@ -56,7 +56,11 @@ }; matchBlocks."mini" = { - hostname = "192.168.0.87"; + hostname = "192.168.0.101"; + }; + + matchBlocks."pi" = { + hostname = "192.168.1.143"; }; matchBlocks."router" = { @@ -71,7 +75,7 @@ }; matchBlocks."homeserver" = { - hostname = "192.168.1.100"; + hostname = "192.168.0.100"; localForwards = [ { bind.address = "127.0.0.1"; bind.port = 8385;