From 76b3b07e7329be637b37f92e767595143d3b03fa Mon Sep 17 00:00:00 2001 From: Mark Nipper Date: Sun, 31 Mar 2024 02:40:11 -0700 Subject: Migrate to more modular layout --- home/nipsy/common/core/bash.nix | 10 + home/nipsy/common/core/default.nix | 63 ++++++ home/nipsy/common/core/fonts.nix | 9 + home/nipsy/common/core/git.nix | 8 + home/nipsy/common/core/ssh.nix | 5 + home/nipsy/common/core/tmux/default.nix | 6 + home/nipsy/common/core/tmux/tmux.conf | 34 +++ home/nipsy/common/core/vim/default.nix | 6 + home/nipsy/common/core/vim/vimrc | 46 +++++ home/nipsy/common/core/zsh/default.nix | 10 + home/nipsy/common/core/zsh/zshrc | 170 +++++++++++++++ home/nipsy/common/optional/desktops/default.nix | 7 + home/nipsy/common/optional/desktops/gtk.nix | 7 + home/nipsy/common/optional/desktops/i3/config | 228 +++++++++++++++++++++ home/nipsy/common/optional/desktops/i3/default.nix | 10 + .../common/optional/desktops/services/dunst.nix | 11 + home/nipsy/ginaz.nix | 7 + 17 files changed, 637 insertions(+) create mode 100644 home/nipsy/common/core/bash.nix create mode 100644 home/nipsy/common/core/default.nix create mode 100644 home/nipsy/common/core/fonts.nix create mode 100644 home/nipsy/common/core/git.nix create mode 100644 home/nipsy/common/core/ssh.nix create mode 100644 home/nipsy/common/core/tmux/default.nix create mode 100644 home/nipsy/common/core/tmux/tmux.conf create mode 100644 home/nipsy/common/core/vim/default.nix create mode 100644 home/nipsy/common/core/vim/vimrc create mode 100644 home/nipsy/common/core/zsh/default.nix create mode 100644 home/nipsy/common/core/zsh/zshrc create mode 100644 home/nipsy/common/optional/desktops/default.nix create mode 100644 home/nipsy/common/optional/desktops/gtk.nix create mode 100644 home/nipsy/common/optional/desktops/i3/config create mode 100644 home/nipsy/common/optional/desktops/i3/default.nix create mode 100644 home/nipsy/common/optional/desktops/services/dunst.nix create mode 100644 home/nipsy/ginaz.nix (limited to 'home') diff --git a/home/nipsy/common/core/bash.nix b/home/nipsy/common/core/bash.nix new file mode 100644 index 0000000..77f0cf4 --- /dev/null +++ b/home/nipsy/common/core/bash.nix @@ -0,0 +1,10 @@ +{ + programs.bash = { + enable = true; + enableCompletion = true; + shellAliases = { + ll = "ls -alF --color=auto"; + la = "ls -aF --color=auto"; + }; + }; +} diff --git a/home/nipsy/common/core/default.nix b/home/nipsy/common/core/default.nix new file mode 100644 index 0000000..6903d90 --- /dev/null +++ b/home/nipsy/common/core/default.nix @@ -0,0 +1,63 @@ +{ config, lib, pkgs, outputs, ... }: +{ + imports = [ + ./bash.nix + ./fonts.nix + ./git.nix + ./ssh.nix + ./tmux + ./vim + ./zsh + ] ++ (builtins.attrValues outputs.homeManagerModules); + + home = { + username = lib.mkDefault "nipsy"; + homeDirectory = lib.mkDefault "/home/${config.home.username}"; + stateVersion = lib.mkDefault "23.11"; + }; + + home.packages = builtins.attrValues { + inherit (pkgs) + + borgbackup + btop + coreutils + eza + fd + findutils + fzf + jq + nix-tree + ncdu + pciutils + pfetch + pre-commit + p7zip + ripgrep + usbutils + tree + unzip + unrar + wget + zip; + }; + + nixpkgs = { + overlays = builtins.attrValues outputs.overlays; + config = { + allowUnfree = true; + # Workaround for https://github.com/nix-community/home-manager/issues/2942 + allowUnfreePredicate = (_: true); + }; + }; + + nix = { + package = lib.mkDefault pkgs.nix; + settings = { + experimental-features = [ "nix-command" "flakes" "repl-flake" ]; + warn-dirty = false; + }; + }; + + programs.home-manager.enable = true; +} diff --git a/home/nipsy/common/core/fonts.nix b/home/nipsy/common/core/fonts.nix new file mode 100644 index 0000000..9ed0753 --- /dev/null +++ b/home/nipsy/common/core/fonts.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: +{ + fonts.fontconfig.enable = true; + home.packages = [ + pkgs.noto-fonts + pkgs.nerdfonts + ]; + +} diff --git a/home/nipsy/common/core/git.nix b/home/nipsy/common/core/git.nix new file mode 100644 index 0000000..d8bc6cf --- /dev/null +++ b/home/nipsy/common/core/git.nix @@ -0,0 +1,8 @@ +{ + programs.git = { + enable = true; + userEmail = "nipsy@bitgnome.net"; + userName = "Mark Nipper"; + extraConfig.pull.rebase = true; + }; +} diff --git a/home/nipsy/common/core/ssh.nix b/home/nipsy/common/core/ssh.nix new file mode 100644 index 0000000..929cc51 --- /dev/null +++ b/home/nipsy/common/core/ssh.nix @@ -0,0 +1,5 @@ +{ + programs.ssh = { + enable = true; + }; +} diff --git a/home/nipsy/common/core/tmux/default.nix b/home/nipsy/common/core/tmux/default.nix new file mode 100644 index 0000000..e7873f8 --- /dev/null +++ b/home/nipsy/common/core/tmux/default.nix @@ -0,0 +1,6 @@ +{ + programs.tmux = { + enable = true; + extraConfig = (builtins.readFile ./tmux.conf); + }; +} diff --git a/home/nipsy/common/core/tmux/tmux.conf b/home/nipsy/common/core/tmux/tmux.conf new file mode 100644 index 0000000..ae43d03 --- /dev/null +++ b/home/nipsy/common/core/tmux/tmux.conf @@ -0,0 +1,34 @@ +#set-option -ga terminal-overrides ",st-256color:Tc" +set -as terminal-features ",foot*:RGB" +set -as terminal-features ",st-256color:RGB" +set -ga monitor-bell on +set -g history-limit 100000 +set -g bell-action any +#set -g bell-on-alert on + +set -s escape-time 0 + +setw -g aggressive-resize on +setw -g wrap-search off + +bind-key a send-prefix +bind-key k kill-session +bind-key H pipe-pane -o 'cat >> ~/.tmux.log.#h-#S-#I-#P' + +#bind-key m \ +# set -g mouse on \;\ +# display 'Mouse: ON' +#bind M \ +# set -g mouse off \;\ +# display 'Mouse: OFF' + +# vim-like copypaste mode +set-window-option -g mode-keys vi +bind-key -T copy-mode-vi v send -X begin-selection +bind-key -T copy-mode-vi y send -X copy-pipe "xclip -selection clipboard" +bind-key -T copy-mode-vi C-v send -X rectangle-toggle +bind-key P run "tmux set-buffer \"$(xclip -o -selection clipboard)\"; tmux paste-buffer" + +# don't exit copy mode after selection +#set -s mouse on +#bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection -x diff --git a/home/nipsy/common/core/vim/default.nix b/home/nipsy/common/core/vim/default.nix new file mode 100644 index 0000000..ea4ed5e --- /dev/null +++ b/home/nipsy/common/core/vim/default.nix @@ -0,0 +1,6 @@ +{ + programs.vim = { + enable = true; + extraConfig = (builtins.readFile ./vimrc); + }; +} diff --git a/home/nipsy/common/core/vim/vimrc b/home/nipsy/common/core/vim/vimrc new file mode 100644 index 0000000..e80231c --- /dev/null +++ b/home/nipsy/common/core/vim/vimrc @@ -0,0 +1,46 @@ +" Handling of big files - William Natter, Tony Mechelynck and others +" fairly certain that BufSizeThreshold is in bytes +let g:SaveUndoLevels = &undolevels +let g:BufSizeThreshold = 5242880 +if has("autocmd") + au VimEnter * let g:SaveUndoLevels = &undolevels + au BufReadPre * if getfsize(expand("%")) >= g:BufSizeThreshold | setlocal noswapfile | endif + au BufEnter * if getfsize(expand("%")) < g:BufSizeThreshold | let &undolevels=g:SaveUndoLevels | else | setlocal undolevels=-1 | endif + au BufEnter * if getfsize(expand("%")) < g:BufSizeThreshold | syntax on | else | syntax off | endif +endif + +set mouse& +set noautoindent " always set autoindenting off + +" enable better 24-bit color support +"let &t_8f = "\[38;2;%lu;%lu;%lum" +"let &t_8b = "\[48;2;%lu;%lu;%lum" +set termguicolors + +" If using a dark background within the editing area and syntax highlighting +" turn on this option as well +set background=dark + +if has("autocmd") + " Enabled file type detection + " Use the default filetype settings. If you also want to load indent files + " to automatically do language-dependent indenting add 'indent' as well. + filetype plugin on + "filetype indent on +endif " has ("autocmd") + +" The following are commented out as they cause vim to behave a lot +" different from regular vi. They are highly recommended though. +set showcmd " Show (partial) command in status line. +set showmatch " Show matching brackets. +set ignorecase " Do case insensitive matching +set incsearch " Incremental search +"set expandtab " replace tabs with spaces +set smarttab " use shiftwidth instead of tabstop at start of line +set spell spelllang=en_us " turn on the spell check + +set laststatus=2 +set statusline=%<%f%h%m%r%=%{&ff}\ %Y\ %b\ 0x%B\ \ %l,%c%V\ %P + +map :w:!clear;go run % +map :w:%! gofmt diff --git a/home/nipsy/common/core/zsh/default.nix b/home/nipsy/common/core/zsh/default.nix new file mode 100644 index 0000000..453fa9f --- /dev/null +++ b/home/nipsy/common/core/zsh/default.nix @@ -0,0 +1,10 @@ +{ + programs.zsh = { + enable = true; + initExtra = (builtins.readFile ./zshrc); + shellAliases = { + la = "ls -alFh --color=auto"; + ll = "ls -aF --color=auto"; + }; + }; +} diff --git a/home/nipsy/common/core/zsh/zshrc b/home/nipsy/common/core/zsh/zshrc new file mode 100644 index 0000000..9e43d1d --- /dev/null +++ b/home/nipsy/common/core/zsh/zshrc @@ -0,0 +1,170 @@ +umask 022 + +#export GOROOT="''${HOME}/.local/go" +#export GOPATH="''${HOME}/go" + +#export PATH="$HOME/bin:$GOROOT/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/games:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin" +#export PATH="$HOME/bin:$GOROOT/bin:/usr/bin:/usr/sbin:/usr/games:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin" +#export PATH=~/bin::~/.local/rust/cargo/bin:/usr/bin:/usr/sbin:/usr/games:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin +export PATH=~/bin:''${PATH} + +#export PS1="%B%n%b@%U%m%u/%l:%~> " +export PAGER=less +export EDITOR=vim +export BROWSER=firefox + +export LC_COLLATE="C" +eval $(dircolors) +export QUOTING_STYLE="literal" + +export IRCNICK="nipsy" +export IRCNAME="Mark Nipper" + +export NNTPSERVER="news.giganews.com" + +#export HISTFILE="$HOME/.zsh_hist" +export HISTSIZE=100000 +export SAVEHIST=''${HISTSIZE} + +#export COLORTERM=truecolor +export COLORFGBG="green;blue" + +# fix stupid broken Java shit +export _JAVA_AWT_WM_NONREPARENTING=1 + +# enable pass extensions +export PASSWORD_STORE_ENABLE_EXTENSIONS=true + +# set SWAYSOCK correctly +if pgrep -U nipsy -x sway >/dev/null; then + export SWAYSOCK=/run/user/$(id -u)/sway-ipc.$(id -u).$(pgrep -x sway).sock +fi + +# start sway by default if logging into tty1 +if [[ -z "''${DISPLAY}" ]] && [[ $(tty) == "/dev/tty1" ]]; then + + export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) + + # set some Wayland specific variables + export MOZ_ENABLE_WAYLAND=1 + export GDK_BACKEND=wayland + export QT_QPA_PLATFORM=wayland + export SDL_VIDEODRIVER=wayland + export XDG_SESSION_TYPE=wayland + + exec sway > ~/.sway.log + +fi + +# if already in Wayland, update the GPG TTY so ssh-askpass will work correctly +if [[ -n "''${WAYLAND_DISPLAY}" ]]; then + gpg-connect-agent updatestartuptty /bye >/dev/null +fi + +# completion options +setopt LIST_PACKED MENU_COMPLETE +# expansion and globbing options +setopt NO_NOMATCH +# history options +setopt SHARE_HISTORY EXTENDED_HISTORY HIST_FCNTL_LOCK HIST_IGNORE_ALL_DUPS HIST_REDUCE_BLANKS HIST_SAVE_NO_DUPS +# input/output options +setopt PRINT_EXIT_VALUE RM_STAR_SILENT +# job control options +setopt LONG_LIST_JOBS NO_HUP +# zle options +setopt NO_BEEP + +lsopt='--color=auto' +#alias ll="ls -alFh $lsopt" +#alias la="ls -aF $lsopt" +alias cal="ncal -b" +#alias grep='grep --color=always' # cannot do this as it breaks shell pipelines +alias talk='gnutalk --curses' +alias manage="tmux new-window ssh root@darkstar\; split-window -d ssh root@king\; new-window ssh root@black-sheep\; split-window -d ssh root@treebeard\; new-window ssh root@casey\; split-window -d ssh root@homer\; new-window ssh root@lilnasx\; split-window -d ssh root@trent" +alias manage-mac="tmux new-session \; source ~/.tmux/manage-mac" +alias win7="xfreerdp -x l -g 1680x1050 -u nipsy -d la-its841279wd kaitain" +alias win7-la="xfreerdp -x l -g 1680x1050 -u la-mrn447 -d austin kaitain" +#alias kubectl="~/k3s/k3s kubectl" +#alias helm="~/k3s/linux-amd64/helm" +alias lock="xscreensaver-command -lock" +alias fixkeyboard="setxkbmap -layout us -option caps:super -option compose:ralt" +alias zigup="zigup --install-dir ~/.local/zig --path-link ~/bin/zig" + +#autoload -U compinit +#compinit +zstyle ':completion:*' menu select=5 + +bindkey -v +export KEYTIMEOUT=1 + +autoload -U edit-command-line +zle -N edit-command-line +bindkey -M vicmd v edit-command-line + +# nix +#if [ -e /home/nipsy/.nix-profile/etc/profile.d/nix.sh ]; then . /home/nipsy/.nix-profile/etc/profile.d/nix.sh; fi # added by Nix installer + +# The next line updates PATH for the Google Cloud SDK. +#source /home/nipsy/google-cloud-sdk/path.zsh.inc + +# The next line enables bash completion for gcloud. +#source /home/nipsy/google-cloud-sdk/completion.zsh.inc + +# always open tmux if interactive +[[ $- != *i* ]] && return +#[[ -z "$TMUX" ]] && (tmux -2 new-session -t default \; new-window || tmux -2 new-session -s default) +[[ -z "$TMUX" ]] && (tmux -2 attach -t default || tmux -2 new-session -s default) + +# prompt/theme shit +function precmd { + + local RC=''${?} + #local RC=''${(%)RC-%?} + + print -nP '\n' + + # current user + if [[ ''${EUID} -eq 0 ]]; then + print -nP '%{%S%F{red}%}%n%{%f%s%}' + else + print -nP '%{%F{magenta}%}%n%{%f%}' + fi + + print -nP '@' + + # current host + if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then + print -nP '%{%F{yellow}%}%m%{%f%}' + else + print -nP '%{%F{green}%}%m%{%f%}' + fi + + # connected terminal + print -nP '/%{%U%}%l%{%u%} ' + + # cwd + print -nP '%{%F{cyan}%}%~%{%f%} ' + + # job count + JOBCOUNT='%j' + if [[ ''${(%)JOBCOUNT} -gt 0 ]]; then + print -nP 'j=%{%F{yellow}%}%j%{%f%} ' + fi + + # previous return code + if [[ ''${RC} -ne 0 ]]; then + print -nP 'rc=%{%F{red}%}' + echo -n "''${RC}" + print -nP '%{%f%} ' + else + print -nP 'rc=%{%F{green}%}' + echo -n "''${RC}" + print -nP '%{%f%} ' + fi + + # time stamp + print -P '%{%F{cyan}%}%D{%FT%T%z}%{%f%}' + +} + +PS1='%# ' diff --git a/home/nipsy/common/optional/desktops/default.nix b/home/nipsy/common/optional/desktops/default.nix new file mode 100644 index 0000000..0bb8411 --- /dev/null +++ b/home/nipsy/common/optional/desktops/default.nix @@ -0,0 +1,7 @@ +{ + imports = [ + ./gtk.nix + ./i3 + ./services/dunst.nix + ]; +} diff --git a/home/nipsy/common/optional/desktops/gtk.nix b/home/nipsy/common/optional/desktops/gtk.nix new file mode 100644 index 0000000..facb782 --- /dev/null +++ b/home/nipsy/common/optional/desktops/gtk.nix @@ -0,0 +1,7 @@ +{ + gtk = { + enable = true; + gtk3.extraConfig.gtk-application-prefer-dark-theme = true; + gtk4.extraConfig.gtk-application-prefer-dark-theme = true; + }; +} diff --git a/home/nipsy/common/optional/desktops/i3/config b/home/nipsy/common/optional/desktops/i3/config new file mode 100644 index 0000000..57c9d38 --- /dev/null +++ b/home/nipsy/common/optional/desktops/i3/config @@ -0,0 +1,228 @@ +# This file has been auto-generated by i3-config-wizard(1). +# It will not be overwritten, so edit it as you like. +# +# Should you change your keyboard layout somewhen, delete +# this file and re-run i3-config-wizard(1). +# + +# i3 config file (v4) +# +# Please see http://i3wm.org/docs/userguide.html for a complete reference! + +set $mod Mod4 + +# Font for window titles. Will also be used by the bar unless a different font +# is used in the bar {} block below. ISO 10646 = Unicode +font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +# The font above is very space-efficient, that is, it looks good, sharp and +# clear in small sizes. However, if you need a lot of unicode glyphs or +# right-to-left text rendering, you should instead use pango for rendering and +# chose a FreeType font, such as: +# font pango:DejaVu Sans Mono 10 + +# Use Mouse+$mod to drag floating windows to their wanted position +floating_modifier $mod + +# start a terminal +bindsym $mod+Return exec --no-startup-id st + +# lock the screen +bindsym $mod+Scroll_Lock exec --no-startup-id xscreensaver-command -lock + +# increase volume +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5% + +# decrease volume +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5% + +# mute volume +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle + +# mute mic volume +bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute 1 toggle + +# kill focused window +bindsym $mod+Shift+q kill +# kill with middle mouse button over titlebar +bindsym --release button2 kill +# kill with middle mouse button and $mod anywhere over window +bindsym --whole-window $mod+button2 kill + +# start dmenu (a program launcher) +bindsym $mod+d exec dmenu_run +# There also is the (new) i3-dmenu-desktop which only displays applications +# shipping a .desktop file. It is a wrapper around dmenu, so you need that +# installed. +# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop + +# change focus +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# alternatively, you can use the cursor keys: +bindsym $mod+Left focus left +bindsym $mod+Down focus down +bindsym $mod+Up focus up +bindsym $mod+Right focus right + +# move focused window +bindsym $mod+Shift+j move left +bindsym $mod+Shift+k move down +bindsym $mod+Shift+l move up +bindsym $mod+Shift+semicolon move right + +# alternatively, you can use the cursor keys: +bindsym $mod+Shift+Left move left +bindsym $mod+Shift+Down move down +bindsym $mod+Shift+Up move up +bindsym $mod+Shift+Right move right + +# split in horizontal orientation +bindsym $mod+h split h + +# split in vertical orientation +bindsym $mod+v split v + +# enter fullscreen mode for the focused container +bindsym $mod+Shift+f fullscreen + +# enter fullscreen mode for the focused container +bindsym $mod+Shift+g fullscreen global + +# change container layout (stacked, tabbed, toggle split) +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+e layout toggle split + +# toggle tiling / floating +bindsym $mod+Shift+space floating toggle + +# change focus between tiling / floating windows +bindsym $mod+space focus mode_toggle + +# focus the parent container +bindsym $mod+a focus parent + +# focus the child container +#bindsym $mod+d focus child + +# switch to workspace +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +bindsym $mod+3 workspace 3 +bindsym $mod+4 workspace 4 +bindsym $mod+5 workspace 5 +bindsym $mod+6 workspace 6 +bindsym $mod+7 workspace 7 +bindsym $mod+8 workspace 8 +bindsym $mod+9 workspace 9 +bindsym $mod+0 workspace 10 +bindsym $mod+F1 workspace 11 +bindsym $mod+F2 workspace 12 +bindsym $mod+F3 workspace 13 +bindsym $mod+F4 workspace 14 +bindsym $mod+F5 workspace 15 +bindsym $mod+F6 workspace 16 +bindsym $mod+F7 workspace 17 +bindsym $mod+F8 workspace 18 +bindsym $mod+F9 workspace 19 +bindsym $mod+F10 workspace 20 + +# move backward or forward to next workspace +bindsym $mod+n workspace next +bindsym $mod+p workspace prev +bindsym $mod+f workspace next_on_output +bindsym $mod+b workspace prev_on_output + +# move focused container to workspace +bindsym $mod+Shift+1 move container to workspace 1 +bindsym $mod+Shift+2 move container to workspace 2 +bindsym $mod+Shift+3 move container to workspace 3 +bindsym $mod+Shift+4 move container to workspace 4 +bindsym $mod+Shift+5 move container to workspace 5 +bindsym $mod+Shift+6 move container to workspace 6 +bindsym $mod+Shift+7 move container to workspace 7 +bindsym $mod+Shift+8 move container to workspace 8 +bindsym $mod+Shift+9 move container to workspace 9 +bindsym $mod+Shift+0 move container to workspace 10 +bindsym $mod+Shift+F1 move container to workspace 11 +bindsym $mod+Shift+F2 move container to workspace 12 +bindsym $mod+Shift+F3 move container to workspace 13 +bindsym $mod+Shift+F4 move container to workspace 14 +bindsym $mod+Shift+F5 move container to workspace 15 +bindsym $mod+Shift+F6 move container to workspace 16 +bindsym $mod+Shift+F7 move container to workspace 17 +bindsym $mod+Shift+F8 move container to workspace 18 +bindsym $mod+Shift+F9 move container to workspace 19 +bindsym $mod+Shift+F10 move container to workspace 20 + +# jump to urgent window +bindsym $mod+u [urgent=latest] focus + +# reload the configuration file +bindsym $mod+Shift+c reload +# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) +bindsym $mod+Shift+r restart +# exit i3 (logs you out of your X session) +#bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'" +bindsym $mod+Shift+e exec i3-msg exit + +# resize window (you can also use the mouse for that) +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +bindsym $mod+r mode "resize" + +# bar toggle, hide or show +bindsym $mod+m bar mode toggle + +# VNC mode (disable all local keybindings except the toggle keybinding) +mode "VNC" { + bindsym $mod+Shift+v mode "default" +} + +bindsym $mod+Shift+v mode "VNC" + +# Start i3bar to display a workspace bar (plus the system information i3status +# finds out, if available) +bar { + status_command i3status + tray_output primary +} + +# set borders normal for everything except st +#for_window [class="^.*"] border normal +#for_window [class="st-256color"] border pixel 1 +#for_window [class="AppGate SDP"] floating disable +#for_window [class="factorio"] fullscreen enable +for_window [class="Steam" title="Friends List"] floating enable +#for_window [class=".*"] border none +for_window [all] border none + +# Start network applet +#exec --no-startup-id nm-applet +#exec --no-startup-id blueman-applet +#exec --no-startup-id ~/bin/xscreensaver-activate +#exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1 diff --git a/home/nipsy/common/optional/desktops/i3/default.nix b/home/nipsy/common/optional/desktops/i3/default.nix new file mode 100644 index 0000000..d369ff2 --- /dev/null +++ b/home/nipsy/common/optional/desktops/i3/default.nix @@ -0,0 +1,10 @@ +{ + programs.i3status = { + enable = true; + }; + + xsession.windowManager.i3 = { + enable = true; + extraConfig = (builtins.readFile ./config); + }; +} diff --git a/home/nipsy/common/optional/desktops/services/dunst.nix b/home/nipsy/common/optional/desktops/services/dunst.nix new file mode 100644 index 0000000..9efef64 --- /dev/null +++ b/home/nipsy/common/optional/desktops/services/dunst.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: +{ + home.packages = builtins.attrValues { + inherit (pkgs) + libnotify; # required by dunst + }; + + services.dunst = { + enable = true; + }; +} diff --git a/home/nipsy/ginaz.nix b/home/nipsy/ginaz.nix new file mode 100644 index 0000000..17d39fd --- /dev/null +++ b/home/nipsy/ginaz.nix @@ -0,0 +1,7 @@ +{ inputs, lib, pkgs, config, outputs, ... }: +{ + imports = [ + common/core + common/optional/desktops + ]; +} -- cgit v1.2.3