diff options
Diffstat (limited to 'common/.flake/home/programs')
-rw-r--r-- | common/.flake/home/programs/emacs/core.nix.org | 19 | ||||
l--------- | common/.flake/home/programs/emacs/feed.org.org | 1 | ||||
l--------- | common/.flake/home/programs/emacs/force-custom-file.el.org | 1 | ||||
l--------- | common/.flake/home/programs/emacs/init.el.org | 1 | ||||
l--------- | common/.flake/home/programs/emacs/languages.el.org | 1 | ||||
l--------- | common/.flake/home/programs/emacs/package-setup.el.org | 1 | ||||
l--------- | common/.flake/home/programs/emacs/tools.el.org | 1 | ||||
l--------- | common/.flake/home/programs/emacs/user-interface.el.org | 1 | ||||
-rw-r--r-- | common/.flake/home/programs/fastfetch.nix.org | 84 | ||||
-rw-r--r-- | common/.flake/home/programs/foot.nix.org | 42 | ||||
-rw-r--r-- | common/.flake/home/programs/git.nix.org | 18 | ||||
-rw-r--r-- | common/.flake/home/programs/hyprlock.nix.org | 42 | ||||
-rw-r--r-- | common/.flake/home/programs/ncmpcpp.nix.org | 28 | ||||
-rw-r--r-- | common/.flake/home/programs/neovim.nix.org | 32 | ||||
-rw-r--r-- | common/.flake/home/programs/ssh.nix.org | 13 | ||||
-rw-r--r-- | common/.flake/home/programs/waybar.nix.org | 149 | ||||
-rw-r--r-- | common/.flake/home/programs/zsh.nix.org | 87 |
17 files changed, 521 insertions, 0 deletions
diff --git a/common/.flake/home/programs/emacs/core.nix.org b/common/.flake/home/programs/emacs/core.nix.org new file mode 100644 index 0000000..61688be --- /dev/null +++ b/common/.flake/home/programs/emacs/core.nix.org @@ -0,0 +1,19 @@ +#+title: Emacs Configuration + +#+begin_src nix + { config, pkgs, ... }: + + { + home.file = { + "./.config/emacs/init.el".source = ./init.el; + "./.config/emacs/force-custom-file.el".source = ./force-custom-file.el; + "./.config/emacs/package-setup.el".source = ./package-setup.el; + "./.config/emacs/user-interface.el".source = ./user-interface.el; + "./.config/emacs/tools.el".source = ./tools.el; + "./.config/emacs/languages.el".source = ./languages.el; + }; + programs.emacs = { + enable = true; + }; + } +#+end_src diff --git a/common/.flake/home/programs/emacs/feed.org.org b/common/.flake/home/programs/emacs/feed.org.org new file mode 120000 index 0000000..d074855 --- /dev/null +++ b/common/.flake/home/programs/emacs/feed.org.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/feed.org.org
\ No newline at end of file diff --git a/common/.flake/home/programs/emacs/force-custom-file.el.org b/common/.flake/home/programs/emacs/force-custom-file.el.org new file mode 120000 index 0000000..06a4dc7 --- /dev/null +++ b/common/.flake/home/programs/emacs/force-custom-file.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/force-custom-file.el.org
\ No newline at end of file diff --git a/common/.flake/home/programs/emacs/init.el.org b/common/.flake/home/programs/emacs/init.el.org new file mode 120000 index 0000000..6b2f721 --- /dev/null +++ b/common/.flake/home/programs/emacs/init.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/init.el.org
\ No newline at end of file diff --git a/common/.flake/home/programs/emacs/languages.el.org b/common/.flake/home/programs/emacs/languages.el.org new file mode 120000 index 0000000..dd60c9f --- /dev/null +++ b/common/.flake/home/programs/emacs/languages.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/languages.el.org
\ No newline at end of file diff --git a/common/.flake/home/programs/emacs/package-setup.el.org b/common/.flake/home/programs/emacs/package-setup.el.org new file mode 120000 index 0000000..c0f3ead --- /dev/null +++ b/common/.flake/home/programs/emacs/package-setup.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/package-setup.el.org
\ No newline at end of file diff --git a/common/.flake/home/programs/emacs/tools.el.org b/common/.flake/home/programs/emacs/tools.el.org new file mode 120000 index 0000000..ff0296b --- /dev/null +++ b/common/.flake/home/programs/emacs/tools.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/tools.el.org
\ No newline at end of file diff --git a/common/.flake/home/programs/emacs/user-interface.el.org b/common/.flake/home/programs/emacs/user-interface.el.org new file mode 120000 index 0000000..8a7f782 --- /dev/null +++ b/common/.flake/home/programs/emacs/user-interface.el.org @@ -0,0 +1 @@ +../../../../../common/.config/emacs/user-interface.el.org
\ No newline at end of file diff --git a/common/.flake/home/programs/fastfetch.nix.org b/common/.flake/home/programs/fastfetch.nix.org new file mode 100644 index 0000000..96b2044 --- /dev/null +++ b/common/.flake/home/programs/fastfetch.nix.org @@ -0,0 +1,84 @@ +#+title: Fastfetch Configuration + +Specify the layout for =fastfetch=. +#+begin_src nix :tangle ~/.flake/home/programs/fastfetch.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.fastfetch = { + enable = true; + settings = { + logo = { + type = "raw"; + source = "~/.config/fastfetch/logo.sixel"; + width = 40; + height = 19; + }; + display = { + separator = " "; + }; + modules = [ + "title" + { + type = "custom"; + format = "──────────────────────────────────"; + } + { + type = "os"; + key = ""; + } + { + type = "kernel"; + key = ""; + } + { + type = "uptime"; + key = ""; + } + { + type = "packages"; + key = ""; + } + { + type = "shell"; + key = ""; + } + { + type = "display"; + key = ""; + } + { + type = "wm"; + key = ""; + } + { + type = "terminal"; + key = ""; + } + { + type = "cpu"; + key = ""; + } + { + type = "gpu"; + key = ""; + } + { + type = "memory"; + key = ""; + } + { + type = "disk"; + key = ""; + } + { + type = "locale"; + key = ""; + } + "break" + "colors" + ]; + }; + }; + } +#+end_src diff --git a/common/.flake/home/programs/foot.nix.org b/common/.flake/home/programs/foot.nix.org new file mode 100644 index 0000000..3490bed --- /dev/null +++ b/common/.flake/home/programs/foot.nix.org @@ -0,0 +1,42 @@ +#+title: Foot Terminal Configuration + +Specify my font and colour scheme for =foot=. +#+begin_src nix :tangle ~/.flake/home/programs/foot.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + programs.foot = { + enable = true; + settings = { + main = { + font = "SauceCodePro Nerd Font:size=10"; + pad = "6x6"; + }; + mouse = { + hide-when-typing = "yes"; + }; + colors = { + alpha = "0.9"; + background = "ece0c9"; + foreground = "191916"; + regular0 = "191916"; + regular1 = "ac4438"; + regular2 = "354d52"; + regular3 = "ba9151"; + regular4 = "465b91"; + regular5 = "5b5489"; + regular6 = "4e6062"; + regular7 = "c9ad7a"; + bright0 = "293c3c"; + bright1 = "d8611c"; + bright2 = "4b7b53"; + bright3 = "d8974b"; + bright4 = "2f3d91"; + bright5 = "735e82"; + bright6 = "6b8f92"; + bright7 = "ece0c9"; + }; + }; + }; +} +#+end_src diff --git a/common/.flake/home/programs/git.nix.org b/common/.flake/home/programs/git.nix.org new file mode 100644 index 0000000..baf3aaa --- /dev/null +++ b/common/.flake/home/programs/git.nix.org @@ -0,0 +1,18 @@ +#+title: Git Configuration + +Specify my name and email for =git=. Also enable =delta= and =pull.rebase=. +#+begin_src nix :tangle ~/.flake/home/programs/git.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + programs.git = { + enable = true; + userName = "Jacob Janzen"; + userEmail = "jacob.a.s.janzen@gmail.com"; + delta.enable = true; + extraConfig = { + pull.rebase = true; + }; + }; +} +#+end_src diff --git a/common/.flake/home/programs/hyprlock.nix.org b/common/.flake/home/programs/hyprlock.nix.org new file mode 100644 index 0000000..4e94386 --- /dev/null +++ b/common/.flake/home/programs/hyprlock.nix.org @@ -0,0 +1,42 @@ +#+title: Hyprlock Configuration + +Place a textbox in the middle of the screen and use my blurred wallpaper as the background when locking. +#+begin_src nix :tangle ~/.flake/home/programs/hyprlock.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.hyprlock = { + enable = true; + settings = { + general = { + disable_loading_bar = true; + grace = 0; + hide_cursor = true; + no_fade_in = false; + }; + background = [ + { + path = "~/.wallpaper"; + blur_passes = 3; + blur_size = 8; + } + ]; + input-field = [ + { + size = "200, 50"; + position = "0, -80"; + monitor = ""; + dots_center = true; + fade_on_empty = false; + font_color = "rgb(202, 211, 245)"; + inner_color = "rgb(91, 96, 120)"; + outer_color = "rgb(24, 25, 38)"; + outline_thickness = 5; + placeholder_text = "<span foreground=\"##cad3f5\">Password...</span>"; + shadow_passes = 2; + } + ]; + }; + }; + } +#+end_src diff --git a/common/.flake/home/programs/ncmpcpp.nix.org b/common/.flake/home/programs/ncmpcpp.nix.org new file mode 100644 index 0000000..eb1f02f --- /dev/null +++ b/common/.flake/home/programs/ncmpcpp.nix.org @@ -0,0 +1,28 @@ +#+title: =ncmpcpp= Configuration + +Enable =vi=-like controls and specify directories and MPD address. +#+begin_src nix :tangle ~/.flake/home/programs/ncmpcpp.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + programs.ncmpcpp = { + enable = true; + bindings = [ + { key = "j"; command = "scroll_down"; } + { key = "k"; command = "scroll_up"; } + { key = "h"; command = "previous_column"; } + { key = "l"; command = "next_column"; } + { key = "g"; command = "move_home"; } + { key = "G"; command = "move_end"; } + { key = "n"; command = "next_found_item"; } + { key = "N"; command = "previous_found_item"; } + ]; + mpdMusicDir = "~/Music"; + settings = { + ncmpcpp_directory = "~/.config/nmcpcpp"; + mpd_host = "localhost"; + mpd_port = "6600"; + }; + }; +} +#+end_src diff --git a/common/.flake/home/programs/neovim.nix.org b/common/.flake/home/programs/neovim.nix.org new file mode 100644 index 0000000..350eded --- /dev/null +++ b/common/.flake/home/programs/neovim.nix.org @@ -0,0 +1,32 @@ +#+title: Neovim Settings + +Create a simple Neovim configuration. +#+begin_src nix :tangle ~/.flake/home/programs/neovim.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.neovim = { + enable = true; + + defaultEditor = true; + viAlias = true; + vimAlias = true; + plugins = with pkgs.vimPlugins; [ + vim-trailing-whitespace + lightline-vim + delimitMate + ]; + extraLuaConfig = '' + vim.opt.tabstop = 4 + vim.opt.expandtab = true + vim.opt.shiftwidth = 4 + vim.opt.autoindent = true + vim.opt.wildmode = 'longest,list' + vim.opt.number = true + vim.g.background = light + vim.cmd [[colorscheme default]] + vim.cmd [[set notermguicolors]] + ''; + }; + } +#+end_src diff --git a/common/.flake/home/programs/ssh.nix.org b/common/.flake/home/programs/ssh.nix.org new file mode 100644 index 0000000..a7502d2 --- /dev/null +++ b/common/.flake/home/programs/ssh.nix.org @@ -0,0 +1,13 @@ +#+title: SSH Configuration + +Add keys to SSH agent. +#+begin_src nix :tangle ~/.flake/home/programs/ssh.nix :mkdirp yes +{ config, pkgs, ... }: + +{ + programs.ssh = { + enable = true; + addKeysToAgent = "yes"; + }; +} +#+end_src diff --git a/common/.flake/home/programs/waybar.nix.org b/common/.flake/home/programs/waybar.nix.org new file mode 100644 index 0000000..7fe40f3 --- /dev/null +++ b/common/.flake/home/programs/waybar.nix.org @@ -0,0 +1,149 @@ +#+title: Waybar Configuration + +Show workspaces on the left, the current window in the centre, and MPD status, audio, cpu and memory status, clock, and system tray on the right. +#+begin_src nix :tangle ~/.flake/home/programs/waybar.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.waybar = { + enable = true; + settings = { + mainBar = { + height = 30; + spacing = 4; + modules-left = [ "hyprland/workspaces" ]; + modules-center = [ "hyprland/window" ]; + modules-right = [ "mpd" "pulseaudio" "cpu" "memory" "clock" "tray" ]; + mpd = { + format = "{stateIcon} {artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) [{songPosition}|{queueLength}] 🎵"; + format-disconnected = "Disconnected 🎵"; + format-stopped = "{consumeIcon}Stopped 🎵"; + unknown-tag = "N/A"; + interval = 2; + state-icons = { + paused = ""; + playing = ""; + }; + tooltip-format = "MPD (connected)"; + tooltip-format-disconnected = "MPD (disconnected)"; + on-click = "foot -e ncmpcpp"; + }; + tray = { + icon-size = 21; + spacing = 10; + show-passive-items = true; + }; + clock = { + format = "{:%H:%M\t%Y-%m-%d}"; + }; + cpu = { + format = "{usage}% "; + tooltip = false; + }; + memory = { + format = "{}% "; + }; + network = { + format-wifi = ""; + tooltip = false; + format-ethernet = ""; + format-linked = ""; + format-disconnected = "⚠"; + on-click = "kcmshell5 kcm_networkmanagement"; + }; + pulseaudio = { + format = "{volume}% {icon}"; + format-bluetooth = "{volume}% {icon}"; + format-bluetooth-muted = " {icon}"; + format-muted = " "; + format-source = "{volume}% "; + format-source-muted = ""; + format-icons = { + headphone = ""; + hands-free = ""; + headset = ""; + phone = ""; + portable = ""; + car = ""; + default = ["" "" ""]; + }; + on-click = "pavucontrol"; + }; + }; + }; + style = '' + window#waybar { + font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif; + font-size: 13px; + background: transparent; + color: #ffffff; + text-shadow: 1px 1px #64727D; + transition-property: background-color; + transition-duration: .5s; + } + button { + border: none; + border-radius: 0; + } + button:hover { + background: inherit; + box-shadow: inset 0 -3px #ffffff; + } + #workspaces button { + padding: 0 5px; + text-shadow: 1px 1px #64727D; + background-color: transparent; + color: #ffffff; + } + #workspaces button:hover { + background: rgba(0, 0, 0, 0.2); + } + #workspaces button.focused { + background: transparent; + box-shadow: inset 0 -3px #ffffff; + } + #workspaces button.urgent { + background-color: #eb4d4b; + } + #clock, + #cpu, + #memory, + #disk, + #network, + #pulseaudio, + #wireplumber, + #custom-media, + #tray, + #mode, + #scratchpad, + #mpd { + padding: 0 10px; + } + #window, + #workspaces { + margin: 0 4px; + } + .modules-left > widget:first-child > #workspaces { + margin-left: 0; + } + + .modules-right > widget:last-child > #workspaces { + margin-right: 0; + } + #tray > .passive { + -gtk-icon-effect: dim; + } + #tray > .needs-attention { + -gtk-icon-effect: highlight; + } + #scratchpad { + background: rgba(0, 0, 0, 0.2); + } + + #scratchpad.empty { + background-color: transparent; + } + ''; + }; + } +#+end_src diff --git a/common/.flake/home/programs/zsh.nix.org b/common/.flake/home/programs/zsh.nix.org new file mode 100644 index 0000000..79795d0 --- /dev/null +++ b/common/.flake/home/programs/zsh.nix.org @@ -0,0 +1,87 @@ +#+title: ZSH Configuration + +Open =zsh= configuration. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + { config, pkgs, ... }: + + { + programs.zsh = { + enable = true; +#+end_src + +Automatically =cd= if only the path is used. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + autocd = true; +#+end_src + +Enable auto-suggestions. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + autosuggestion = { + enable = true; + }; +#+end_src + +Use =vi= keybindings. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + defaultKeymap = "viins"; +#+end_src + +Append to the history and ignore duplicates. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + history = { + append = true; + ignoreAllDups = true; + }; +#+end_src + +Specify =ls= aliases. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + shellAliases = { + "ll" = "ls -alF"; + "la" = "ls -a"; + "l" = "ls -F"; + "sl" = "ls"; + }; +#+end_src + +Enable syntax highlighting. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + syntaxHighlighting.enable = true; +#+end_src + +Create potential aliases and create the prompt. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + initExtra = '' + which lesspipe.sh &> /dev/null && export LESSOPEN="|lesspipe.sh %s" + which eza &> /dev/null && alias ls=eza + parse_git_dirty() { + git_status="$(git status 2> /dev/null)" + [[ "$git_status" =~ "use \"git push\" to publish your local commits" ]] && echo -n " %F{green}%f" + [[ "$git_status" =~ "Changes to be committed:" ]] && echo -n " %F{magenta}%f" + [[ "$git_status" =~ "Changes not staged for commit:" ]] && echo -n " %F{yellow}%f" + [[ "$git_status" =~ "Untracked files:" ]] && echo -n " %F{red}%f" + } + setopt prompt_subst + autoload -Uz vcs_info + precmd () { vcs_info } + zstyle ':vcs_info:*' formats ' %F{blue}%b%f' # git(main) + PS1='%(?..%B%F{red}[%?%\]%f%b )%F{green}%20<...<%~%<<%f$vcs_info_msg_0_$(parse_git_dirty) $ ' + ''; +#+end_src + +Launch =ssh-agent= at login. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + profileExtra = '' + if [ ! -S ~/.ssh/ssh_auth_sock ]; then + eval `ssh-agent` > /dev/null + ln -sf "$SSH_AUTH_SOCK" ~/.ssh/ssh_auth_sock + fi + export SSH_AUTH_SOCK=~/.ssh/ssh_auth_sock + ''; +#+end_src + +Close =zsh= configuration. +#+begin_src nix :tangle ~/.flake/home/programs/zsh.nix :mkdirp yes + }; + } +#+end_src |