diff options
| author | 2025-10-17 12:22:00 -0400 | |
|---|---|---|
| committer | 2025-10-17 12:32:42 -0400 | |
| commit | 544da1ba50d9cbf51a18ca0abf1db66b3baa7460 (patch) | |
| tree | 1caa87664ea4937c5f4e6e8dc83c49b3132ddd70 /nix_archive/nix/programs | |
| parent | 85a47287e56ba9100420246531ebea5996cc0486 (diff) | |
| download | dotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.tar.gz dotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.tar.bz2 dotfiles-544da1ba50d9cbf51a18ca0abf1db66b3baa7460.zip | |
Gentoo desktop
Diffstat (limited to 'nix_archive/nix/programs')
| -rw-r--r-- | nix_archive/nix/programs/bash.nix | 65 | ||||
| -rw-r--r-- | nix_archive/nix/programs/docker.nix | 4 | ||||
| -rw-r--r-- | nix_archive/nix/programs/firefox.nix | 145 | ||||
| -rw-r--r-- | nix_archive/nix/programs/foot.nix | 51 | ||||
| -rw-r--r-- | nix_archive/nix/programs/kdeconnect.nix | 12 | ||||
| -rw-r--r-- | nix_archive/nix/programs/kitty.nix | 112 | ||||
| -rw-r--r-- | nix_archive/nix/programs/nvim.nix | 235 | ||||
| -rw-r--r-- | nix_archive/nix/programs/obs.nix | 11 | ||||
| -rw-r--r-- | nix_archive/nix/programs/sunshine.nix | 29 | ||||
| -rw-r--r-- | nix_archive/nix/programs/sway.nix | 360 | ||||
| -rw-r--r-- | nix_archive/nix/programs/waydroid.nix | 3 | ||||
| -rw-r--r-- | nix_archive/nix/programs/zsh.nix | 76 |
12 files changed, 1103 insertions, 0 deletions
diff --git a/nix_archive/nix/programs/bash.nix b/nix_archive/nix/programs/bash.nix new file mode 100644 index 0000000..571b4fe --- /dev/null +++ b/nix_archive/nix/programs/bash.nix @@ -0,0 +1,65 @@ +{ config, pkgs, ... }: { + users.defaultUserShell = pkgs.bashInteractive; + environment.sessionVariables = { + SHELL = "${pkgs.bashInteractive}/bin/bash"; + }; + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + programs.bash = { + enable = true; + shellAliases = { + cp = "rsync -av"; + top = "htop"; + bc = "bc -l"; + pgrep = "pgrep -f"; + make = "make -j6"; + diff = "diff -u"; + gdb = "gdb -q"; + mail = "neomutt"; + iroha = "ssh andrew@iroha"; + moyo = "ssh andrew@moyo"; + zasshi = "ssh andrew@zasshi"; + denpa = "ssh moyo -t 'ssh 192.168.122.89'"; + rod = "ssh -p 1738 rod"; + bmrg = "ssh boomerang"; + cmv-add = "$HOME/c/camu/scripts/cmv_add.sh"; + cmv-pause = "cmv-add PAUSE"; + cmv-next = "cmv-add NEXT"; + cmv-prev = "cmv-add PREV"; + cmv-shuffle = "cmv-add SHUFFLE"; + cmv-sort = "cmv-add SORT"; + cmv-reverse = "cmv-add REVERSE"; + cmv-clear = "cmv-add CLEAR"; + }; + historyControl = [ "erasedups" ]; + historySize = 10000; + historyFile = "${homeDir}/.bash_history"; + historyFileSize = 100000; + initExtra = '' + bind 'set completion-query-items 0' + bind 'set show-all-if-ambiguous on' + bind 'set show-all-if-unmodified on' + bind 'set menu-complete-display-prefix on' + bind '"\t": menu-complete' + bind '"\e[Z": menu-complete-backward' + RESET="\001\017\002" + NORMAL="\001\033[0m\002" + YELLOW="\001\033[0;33m\002" + BLUE="\001\033[0;34m\002" + MAGENTA="\001\033[0;35m\002" + CYAN="\001\033[0;36m\002" + RED="\001\033[0;31m\002" + exit_code_guy() + { + if [ $? -eq 0 ]; then + printf "(・_・) >" + else + printf "(″ロ゛) >" + fi + } + export PS1="$RESET$MAGENTA\u@$CYAN\H$MAGENTA:\w\$(exit_code_guy)$NORMAL " + ''; + }; + }; +} diff --git a/nix_archive/nix/programs/docker.nix b/nix_archive/nix/programs/docker.nix new file mode 100644 index 0000000..3491a80 --- /dev/null +++ b/nix_archive/nix/programs/docker.nix @@ -0,0 +1,4 @@ +{ ... }: { + virtualisation.docker.enable = true; + users.users.andrew.extraGroups = [ "docker" ]; +} diff --git a/nix_archive/nix/programs/firefox.nix b/nix_archive/nix/programs/firefox.nix new file mode 100644 index 0000000..d278bd4 --- /dev/null +++ b/nix_archive/nix/programs/firefox.nix @@ -0,0 +1,145 @@ +{ config, pkgs, ... }: +let + colo = config.local.scheme; +in { + environment.systemPackages = with pkgs; [ + firefox-wayland + ]; + environment.sessionVariables = { + BROWSER = "firefox"; + }; + services.psd.enable = true; + home-manager.users.andrew = { + home.file."user-overrides.js" = { + target = ".mozilla/firefox/default/user-overrides.js"; + source = ../../../files/firefox/user-overrides.js; + }; + home.file."firefox-gnome-theme" = { + target = ".mozilla/firefox/default/chrome/firefox-gnome-theme"; + source = (pkgs.fetchFromGitHub { + owner = "rafaelmardojai"; + repo = "firefox-gnome-theme"; + rev = "0909cfe4a2af8d358ad13b20246a350e14c2473d"; + hash = "sha256-lizRM2pj6PHrR25yimjyFn04OS4wcdbc38DCdBVa2rk="; + }); + }; + home.file."customChrome.css" = { + target = ".mozilla/firefox/default/chrome/customChrome.css"; + source = pkgs.writeText "customChrome.css" '' + @namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); + + @media (prefers-color-scheme: ${colo.lightness}) { + :root { + /* Accent */ + --gnome-accent-bg: #${colo.color3}; + --gnome-accent: #${colo.color4}; + + --gnome-toolbar-star-button: #${colo.color4}; + + /* Window */ + --gnome-window-background: #${colo.background}; + --gnome-window-color: #${colo.foreground}; + --gnome-view-background: #${colo.background}; + --gnome-sidebar-background: #${colo.color5}; + --gnome-secondary-sidebar-background: #${colo.color4}; + + /* Card */ + --gnome-card-background: #${colo.background}; + --gnome-card-shade-color: #${colo.color4}; + + /* Menu */ + --gnome-menu-background: #${colo.background}; + + /* Header bar */ + --gnome-headerbar-background: #${colo.background}; + --gnome-headerbar-shade-color: #${colo.background}; + + /* Toolbars */ + --gnome-toolbar-icon-fill: #${colo.foreground}; + + /* Tabs */ + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.color4}; + --gnome-tabbar-tab-active-background-contrast: #${colo.color4}; + --gnome-tabbar-tab-active-hover-background: #${colo.color5}; + + --gnome-tabbar-identity-color-green: var(--gnome-palette-green-1); + --gnome-tabbar-identity-color-yellow: var(--gnome-palette-yellow-2); + --gnome-tabbar-identity-color-orange: var(--gnome-palette-orange-3); + --gnome-tabbar-identity-color-red: var(--gnome-palette-red-1); + --gnome-tabbar-identity-color-purple: var(--gnome-palette-purple-1); + + /* Text color for Firefox Logo in new private tab */ + --gnome-private-wordmark: #${colo.background}; + /* New private tab background */ + --gnome-private-in-content-page-background: #${colo.background}; + /* Private browsing info box */ + --gnome-private-text-primary-color: #${colo.background}; + } + + /* Backdrop colors */ + :root:-moz-window-inactive { + --gnome-tabbar-tab-hover-background: #${colo.background}; + --gnome-tabbar-tab-active-background: #${colo.background}; + } + + /* Private colors */ + :root[privatebrowsingmode="temporary"] { + --gnome-accent-fg: #${colo.color4}; + /* Headerbar */ + --gnome-headerbar-background: #${colo.color5} !important; + /* Tabs */ + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.background}; + --gnome-tabbar-tab-active-background-contrast: #${colo.background}; + --gnome-tabbar-tab-active-hover-background: #${colo.color5}; + } + + /* Private and backdrop colors */ + :root[privatebrowsingmode="temporary"]:-moz-window-inactive { + --gnome-headerbar-background: #${colo.color5} !important; + --gnome-tabbar-tab-hover-background: #${colo.color5}; + --gnome-tabbar-tab-active-background: #${colo.color5}; + } + } + ''; + }; + home.sessionVariables = { + MOZ_WEBRENDER = "1"; + MOZ_USE_XINPUT2 = "1"; + MOZ_ENABLE_WAYLAND = "1"; + }; + programs.firefox = { + enable = true; + profiles.default = { + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ + ublock-origin + skip-redirect + cookies-txt + youtube-recommended-videos + istilldontcareaboutcookies + hls-stream-detector + old-reddit-redirect + tampermonkey + enhanced-h264ify + ]; + userChrome = '' + @import "firefox-gnome-theme/userChrome.css"; + @import "customChrome.css"; + #urlbar .search-one-offs { + display: none !important; + } + #tabbrowser-tabpanels{ + background-color: #${colo.background} !important; + } + ''; + userContent = '' + @import "firefox-gnome-theme/userContent.css"; + @-moz-document url("about:home"),url("about:blank"),url("about:newtab"),url("about:privatebrowsing") { + body{ background-color: #${colo.background} !important } + } + ''; + }; + }; + }; +} diff --git a/nix_archive/nix/programs/foot.nix b/nix_archive/nix/programs/foot.nix new file mode 100644 index 0000000..5c85ce7 --- /dev/null +++ b/nix_archive/nix/programs/foot.nix @@ -0,0 +1,51 @@ +{ config, pkgs, ... }: +let + loc = config.local; + colo = loc.scheme; +in { + environment.sessionVariables = { + TERMINAL = "${pkgs.foot}/bin/footclient"; + }; + home-manager.users.andrew = { + programs.foot = { + enable = true; + server.enable = true; + settings = { + main = { + font = "${s.font.name}:size=${toString s.font.size}"; + }; + colors = { + foreground = "${colo.foreground}"; + background = "${colo.background}"; + regular0 = "${colo.color0}"; + regular1 = "${colo.color1}"; + regular2 = "${colo.color2}"; + regular3 = "${colo.color3}"; + regular4 = "${colo.color4}"; + regular5 = "${colo.color5}"; + regular6 = "${colo.color6}"; + regular7 = "${colo.color7}"; + bright0 = "${colo.color8}"; + bright1 = "${colo.color9}"; + bright2 = "${colo.color10}"; + bright3 = "${colo.color11}"; + bright4 = "${colo.color12}"; + bright5 = "${colo.color13}"; + bright6 = "${colo.color14}"; + bright7 = "${colo.color15}"; + alpha = "1.0"; + }; + }; + }; + wayland.windowManager.sway = { + config = rec { + terminal = "${pkgs.foot}/bin/footclient"; + keybindings = let + mod1 = "Mod1"; + in { + "${mod1}+Return" = "exec ${terminal}"; + }; + }; + }; + }; +} diff --git a/nix_archive/nix/programs/kdeconnect.nix b/nix_archive/nix/programs/kdeconnect.nix new file mode 100644 index 0000000..8d8b366 --- /dev/null +++ b/nix_archive/nix/programs/kdeconnect.nix @@ -0,0 +1,12 @@ +{ ... }: { + networking.firewall = { + allowedTCPPortRanges = [ { from = 1714; to = 1764; } ]; + allowedUDPPortRanges = [ { from = 1714; to = 1764; } ]; + }; + home-manager.users.andrew = { + services.kdeconnect = { + enable = true; + indicator = false; + }; + }; +} diff --git a/nix_archive/nix/programs/kitty.nix b/nix_archive/nix/programs/kitty.nix new file mode 100644 index 0000000..86ad720 --- /dev/null +++ b/nix_archive/nix/programs/kitty.nix @@ -0,0 +1,112 @@ +{ config, lib, pkgs, ... }: +let + loc = config.local; + colo = loc.scheme; +in { + environment.sessionVariables = { + TERMINAL = "${pkgs.kitty}/bin/kitty -1"; + }; + home-manager.users.andrew = { + programs.kitty = { + enable = true; + font = { + name = loc.font.name; + size = loc.font.size; + }; + shellIntegration = { + mode = "enabled"; + enableBashIntegration = true; + }; + extraConfig = '' + shell ${pkgs.bashInteractive}/bin/bash --login + update_check_interval 0 + confirm_os_window_close 0 + sync_to_monitor no + allow_remote_control yes + linux_display_server wayland + remember_window_size no + initial_window_width 720 + initial_window_height 480 + resize_debounce_time 0.025 0.5 + window_padding_width 1 + placement_strategy top-left + scrollback_lines 3000 + paste_actions confirm,confirm-if-large + disable_ligatures always + modify_font baseline ${toString loc.font.baseline} + modify_font cell_height ${toString loc.font.cell-height-offset} + cursor_shape block + #cursor_blink_interval -1 linear ease-out + #cursor_stop_blinking_after 20.0 + #cursor_trail 2 + #cursor_trail_decay 0.075 0.425 + #cursor_trail_start_threshold 3 + cursor #${colo.foreground} + #cursor none + cursor_text_color background + foreground #${colo.foreground} + background #${colo.background} + color0 #${colo.color0} + color1 #${colo.color1} + color2 #${colo.color2} + color3 #${colo.color3} + color4 #${colo.color4} + color5 #${colo.color5} + color6 #${colo.color6} + color7 #${colo.color7} + color8 #${colo.color8} + color9 #${colo.color9} + color10 #${colo.color10} + color11 #${colo.color11} + color12 #${colo.color12} + color13 #${colo.color13} + color14 #${colo.color14} + color15 #${colo.color15} + selection_foreground #${colo.background} + selection_background #${colo.color6} + mark1_foreground #${colo.background} + mark1_background #${colo.color5} + mark2_foreground #${colo.background} + mark2_background #${colo.color6} + mark3_foreground #${colo.background} + mark3_background #${colo.color4} + background_opacity ${toString colo.alpha} + active_border_color #${colo.color4} + bell_border_color #${colo.color1} + inactive_border_color #${colo.color3} + active_tab_foreground #${colo.background} + active_tab_background #${colo.color5} + active_tab_font_style bold-italic + inactive_tab_foreground #${colo.background} + inactive_tab_background #${colo.color4} + url_color #${colo.color5} + enabled_layouts splits,stack + ''; + }; + home.file.".config/kitty/quick-access-terminal.conf".text = '' + lines 18 + background_opacity 0.925 + output_name ${loc.monitors.monitor1} + kitty_override startup_session=quick-access-session.conf + kitty_override placement_strategy=bottom-right + kitty_override window_padding_width=0 12 8 0 + ''; + home.file.".config/kitty/quick-access-session.conf".text = '' + layout splits + launch --var window=main + launch --location=vsplit --bias=17.1 /home/andrew/dl/tmp/clock/a.out + focus_matching_window var:window=first + ''; + wayland.windowManager.sway = { + config = rec { + terminal = "${pkgs.kitty}/bin/kitty -1"; + keybindings = let + mod1 = "Mod1"; + in { + "${mod1}+Return" = "exec ${terminal}"; + "${mod1}+backslash" = "exec ${pkgs.kitty}/bin/kitten quick-access-terminal"; + }; + }; + }; + }; +} diff --git a/nix_archive/nix/programs/nvim.nix b/nix_archive/nix/programs/nvim.nix new file mode 100644 index 0000000..3cdf12e --- /dev/null +++ b/nix_archive/nix/programs/nvim.nix @@ -0,0 +1,235 @@ +{ config, pkgs, ... }: +let + colo = config.local.scheme; + local-nvim = pkgs.vimUtils.buildVimPlugin { + pname = "local"; + version = "0.2"; + src = ../../files/nvim/local; + }; + wal = pkgs.vimUtils.buildVimPlugin { + # https://github.com/neovim/neovim/blob/ec8922978eb14fe62671628bb25215743712eac0/src/nvim/highlight_group.c#L432 + # ...neovim-unwrapped-0.10.4/share/nvim/runtime/syntax/c.vim + pname = "wal"; + version = "3.3"; + src = pkgs.writeTextDir "colors/wal-gui.vim" '' + let g:colors_name = "wal-gui" + + set background=${colo.lightness} + set pumblend=10 + + " Lag Fix + hi! link CurSearch Search + + " Plugins + hi MiniStarterInactive guifg=#${colo.foreground} + hi MiniStarterQuery guifg=#${colo.color5} gui=bold + hi MiniStarterItemPrefix guifg=#${colo.color4} + + " https://github.com/NeogitOrg/neogit/blob/nightly/lua/neogit/lib/hl.lua + hi link NeogitDiffContext Normal + hi link NeogitDiffContextHighlight Normal + hi link NeogitDiffContextCursor Normal + hi link NeogitHunkHeader NeogitHunkHeaderHighlight + + " Custom + hi ExtraWhitespace guibg=#${colo.color4} + + hi Normal guifg=#${colo.foreground} guibg=#${colo.background} + + " Necessary even without tree-sitter. + hi @variable guifg=#${colo.foreground} + + " UI + hi Added guifg=#${colo.color2} + hi Changed guifg=#${colo.color3} + hi ColorColumn guibg=#${colo.color6} + hi Conceal guifg=#${colo.color5} + hi CurSearch guifg=#${colo.background} guibg=#${colo.color4} + hi CursorColumn guibg=#${colo.background} + hi CursorLine guibg=#${colo.color5} + hi DiffAdd guifg=#${colo.color2} guibg=#${colo.background} + hi DiffChange guifg=#${colo.color3} guibg=#${colo.background} + hi DiffDelete guifg=#${colo.color1} guibg=#${colo.background} gui=bold + hi DiffText guifg=#${colo.color4} guibg=#${colo.background} + hi Directory guifg=#${colo.color2} + hi ErrorMsg guifg=#${colo.color1} + hi FloatShadow guibg=#${colo.color6} blend=80 + hi FloatShadowThrough guibg=#${colo.color6} blend=100 + hi Folded guifg=#${colo.color5} guibg=#${colo.background} + hi LineNr guifg=#${colo.color2} + hi MatchParen guifg=#${colo.color2} guibg=#${colo.background} gui=bold + hi ModeMsg guifg=#${colo.color4} + hi MoreMsg guifg=#${colo.color2} + hi NonText guifg=#${colo.color6} + hi NormalFloat guibg=#${colo.color5} + hi Pmenu guibg=#${colo.color5} + hi PmenuThumb guibg=#${colo.color4} + hi PmenuSel guibg=#${colo.color5} " Font color. + hi PmenuSbar guibg=#${colo.color5} + hi Question guifg=#${colo.color3} + hi QuickFixLine guifg=#${colo.color3} + hi RedrawDebugClear guibg=#${colo.color2} + hi RedrawDebugComposed guibg=#${colo.background} + hi RedrawDebugRecompose guibg=#${colo.color3} + hi Removed guifg=#${colo.color1} + hi Search guifg=#${colo.foreground} guibg=#${colo.color1} + hi SignColumn guifg=#${colo.color6} + hi SpecialKey guifg=#${colo.color6} + hi SpellBad guisp=#${colo.color1} gui=undercurl + hi SpellCap guisp=#${colo.color4} gui=undercurl + hi SpellLocal guisp=#${colo.color4} gui=undercurl + hi SpellRare guisp=#${colo.color3} gui=undercurl + hi StatusLine guifg=#${colo.background} guibg=#${colo.color5} + hi StatusLineNC guifg=#${colo.background} guibg=#${colo.color4} + hi Title guifg=#${colo.foreground} gui=bold + hi Visual guibg=#${colo.color3} + hi WarningMsg guifg=#${colo.color3} + hi WinBar guifg=#${colo.color5} guibg=#${colo.background} gui=bold + hi WinBarNC guifg=#${colo.color5} guibg=#${colo.background} + + " // Syntax + " "default link Character Constant", + " "default link Number Constant", + " "default link Boolean Constant", + " "default link Float Number", + " "default link Conditional Statement", + " "default link Repeat Statement", + " "default link Label Statement", + " "default link Keyword Statement", + " "default link Exception Statement", + " "default link Include PreProc", + " "default link Define PreProc", + " "default link Macro PreProc", + " "default link PreCondit PreProc", + " "default link StorageClass Type", + " "default link Structure Type", + " "default link Typedef Type", + " "default link Tag Special", + " "default link SpecialChar Special", + " "default link SpecialComment Special", + " "default link Debug Special", + " "default link Ignore Normal", + + " Syntax Overrides + hi Structure guifg=#${colo.color4} gui=bold + hi StorageClass guifg=#${colo.color4} gui=bold + hi Number guifg=#${colo.foreground} + " ----- + hi link Boolean Number + hi link Character String + hi link SpecialChar Character + + " Syntax + hi Constant guifg=#${colo.foreground} + hi Operator guifg=#${colo.foreground} + hi PreProc guifg=#${colo.foreground} + hi Type guifg=#${colo.foreground} gui=bold + hi Delimiter guifg=#${colo.foreground} + + hi Comment guifg=#${colo.color2} + hi String guifg=#${colo.color2} + hi Identifier guifg=#${colo.foreground} + hi Function guifg=#${colo.foreground} + hi Statement guifg=#${colo.foreground} gui=bold + hi Special guifg=#${colo.color6} + hi Error guifg=#${colo.color1} guibg=#${colo.foreground} " Used for Neogit delete. + hi Todo guifg=#${colo.foreground} gui=bold + + " Diagnostic + hi DiagnosticError guifg=#${colo.color1} + hi DiagnosticWarn guifg=#${colo.color3} + hi DiagnosticInfo guifg=#${colo.color2} + hi DiagnosticHint guifg=#${colo.foreground} + hi DiagnosticOk guifg=#${colo.color4} + hi DiagnosticUnderlineError guisp=#${colo.color1} gui=underline + hi DiagnosticUnderlineWarn guisp=#${colo.color3} gui=underline + hi DiagnosticUnderlineInfo guisp=#${colo.color2} gui=underline + hi DiagnosticUnderlineHint guisp=#${colo.foreground} gui=underline + hi DiagnosticUnderlineOk guisp=#${colo.color4} gui=underline + hi DiagnosticDeprecated guisp=#${colo.color3} gui=strikethrough + ''; + }; +in { + environment.sessionVariables = { + EDITOR = "nvim"; + }; + home-manager.users.andrew = { + programs.neovim = let + s = config.local.starter; + in { + enable = true; + viAlias = true; + vimAlias = true; + extraConfig = '' + lua << EOF + -- Simpler mini.starter builtin actions. + local builtin_actions_edit = function() + return { + { name = 'Edit new buffer', action = 'enew', section = 'Actions' }, + { name = 'Quit', action = 'qall', section = 'Actions' } + } + end + local starter = require('mini.starter') + starter.setup({ + items = { + starter.sections.sessions(6, true), + starter.sections.recent_files(7, false, false), + builtin_actions_edit() + }, + content_hooks = { + starter.gen_hook.adding_bullet(), + starter.gen_hook.aligning('center', 'center') + }, + top_padding = ${toString s.top_padding}, + header = '${s.header}', + footer = '${s.footer}', + footer_offset = ${toString s.footer-offset}, + picture = { + path = '${s.picture}', + kitty = os.getenv('TERM') == 'xterm-kitty', + width = ${toString s.width}, + position = '${s.position}', + padding = { + top = ${toString s.padding.top}, + left = ${toString s.padding.left}, + text = ${toString s.padding.text} + } + } + }) + EOF + '' + builtins.readFile(../../files/nvim/init.vim); + extraPackages = with pkgs; [ + fzf + chafa + ripgrep + xxd + ]; + #(pkgs.vimUtils.buildVimPlugin { + # pname = ""; + # version = ""; + # src = pkgs.fetchFromGitHub { + # owner = ""; + # repo = ""; + # rev = ""; + # hash = ""; + # }; + # meta.homepage = ""; + #}) + plugins = with pkgs.vimPlugins; [ + local-nvim + wal + undotree + fzfWrapper + fzf-vim + vim-gitbranch + vim-signify + nvim-lspconfig + inc-rename-nvim + mini-nvim + neogit + plenary-nvim + ccc-nvim + ]; + }; + }; +} diff --git a/nix_archive/nix/programs/obs.nix b/nix_archive/nix/programs/obs.nix new file mode 100644 index 0000000..59dca35 --- /dev/null +++ b/nix_archive/nix/programs/obs.nix @@ -0,0 +1,11 @@ +{ config, pkgs, ... }: { + environment.systemPackages = with pkgs; [ + obs-studio + ]; + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + home.file.".config/obs-studio/plugins/wlrobs/bin/64bit/libwlrobs.so".source = "${pkgs.obs-studio-plugins.wlrobs}/lib/obs-plugins/libwlrobs.so"; + home.file.".config/obs-studio/plugins/wlrobs/bin/64bit/obs-vaapi.so".source = "${pkgs.obs-studio-plugins.obs-vaapi}/lib/obs-plugins/obs-vaapi.so"; + }; +} diff --git a/nix_archive/nix/programs/sunshine.nix b/nix_archive/nix/programs/sunshine.nix new file mode 100644 index 0000000..dff4d97 --- /dev/null +++ b/nix_archive/nix/programs/sunshine.nix @@ -0,0 +1,29 @@ +{ pkgs, ... }: { + #environment.systemPackages = with pkgs; [ sunshine ]; + services.sunshine = { + enable = true; + capSysAdmin = true; + settings = { + sunshine_name = "Iroha"; + }; + applications = { + env = { + PATH = "$(PATH)"; + }; + apps = [ + { + name = "Steam Gamescope"; + cmd = "gamescope -w 960 -W 960 -h 544 -H 544 -r 60 -O DP-1 -e -- steam steam://open/bigpicture"; + } + ]; + }; + }; + #security.wrappers = { + # sunshine = { + # owner = "root"; + # group = "root"; + # source = "${pkgs.sunshine}/bin/sunshine"; + # capabilities = "cap_sys_admin+p"; + # }; + #}; +} diff --git a/nix_archive/nix/programs/sway.nix b/nix_archive/nix/programs/sway.nix new file mode 100644 index 0000000..b5dcb5f --- /dev/null +++ b/nix_archive/nix/programs/sway.nix @@ -0,0 +1,360 @@ +{ config, lib, pkgs, ... }: +let + loc = config.local; + colo = loc.scheme; +in { + services.xserver.videoDrivers = [ "modesetting" ]; + programs.sway = { + enable = true; + package = pkgs.swayfx; + extraPackages = with pkgs; [ + libinput + swaybg + swayidle + wl-clipboard + libnotify + bemenu + slurp + grim + wf-recorder + wlsunset + xorg.xprop + xorg.xset + xorg.xrdb + xorg.xrandr + ]; + }; + local.scripts.imports = [ + "dbus-sway-environment" + "dmenu-path" + "dmenu-path0" + "dmenu-emoji" + "wlsunset-toggle" + "screenshot" + ]; + services.dbus.enable = true; + security.polkit.enable = true; + programs.dconf.enable = true; + xdg.portal = { + enable = true; + wlr.enable = true; + extraPortals = [ pkgs.xdg-desktop-portal-gtk ]; + }; + xdg.icons.enable = true; + #services.getty.autologinUser = "andrew"; + #services.greetd = { + # enable = false; + # settings = { + # vt=3; + # default_session = { + # command = "run-sway"; + # user = "root"; + # }; + # }; + #}; + qt = { + enable = true; + platformTheme = "qt5ct"; # Also selects qt6ct. + style = "adwaita"; + }; + home-manager.users.andrew = { + home.sessionVariables = { + MAIN_MONITOR="${loc.monitors.monitor1}"; + XDG_CURRENT_DESKTOP = "sway"; + MOZ_ENABLE_WAYLAND = "1"; + SDL_VIDEODRIVER = "wayland"; + GDK_BACKEND = "wayland,x11"; + QT_QPA_PLATFORM = "wayland;xcb"; + QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; + _JAVA_AWT_WM_NONREPARENTING = "1"; + }; + xresources.properties = { + "*background" = "#${colo.background}"; + "*foreground" = "#${colo.foreground}"; + "*color0" = "#${colo.color0}"; + "*color1" = "#${colo.color1}"; + "*color2" = "#${colo.color2}"; + "*color3" = "#${colo.color3}"; + "*color4" = "#${colo.color4}"; + "*color5" = "#${colo.color5}"; + "*color6" = "#${colo.color6}"; + "*color7" = "#${colo.color7}"; + "*color8" = "#${colo.color8}"; + "*color9" = "#${colo.color9}"; + "*color10" = "#${colo.color10}"; + "*color11" = "#${colo.color11}"; + "*color12" = "#${colo.color12}"; + "*color13" = "#${colo.color13}"; + "*color14" = "#${colo.color14}"; + "*color15" = "#${colo.color15}"; + }; + gtk = let + # *_shade_color is adjusted from black by default. + extraCss3 = '' + @define-color shade_color #${colo.background}; + @define-color scrollbar_outline_color #${colo.foreground}; + @define-color window_bg_color #${colo.background}; + @define-color window_fg_color #${colo.foreground}; + @define-color view_bg_color #${colo.background}; + @define-color view_fg_color #${colo.foreground}; + @define-color accent_bg_color #${colo.color4}; + @define-color accent_fg_color #${colo.background}; + @define-color accent_color #${colo.color4}; + @define-color headerbar_bg_color #${colo.background}; + @define-color headerbar_fg_color #${colo.foreground}; + @define-color headerbar_backdrop_color #${colo.background}; + @define-color headerbar_border_color #${colo.color6}; + @define-color secondary_headerbar_bg_color #${colo.background}; + @define-color secondary_headerbar_fg_color #${colo.foreground}; + @define-color secondary_headerbar_backdrop_color #${colo.background}; + @define-color secondary_headerbar_border_color #${colo.color5}; + @define-color thumbnail_bg_color #${colo.background}; + @define-color thumbnail_fg_color #${colo.foreground}; + @define-color card_bg_color #${colo.background}; + @define-color card_fg_color #${colo.foreground}; + @define-color popover_bg_color #${colo.background}; + @define-color popover_fg_color #${colo.foreground}; + @define-color dialog_bg_color #${colo.background}; + @define-color dialog_fg_color #${colo.foreground}; + @define-color panel_bg_color #${colo.background}; + @define-color panel_fg_color #${colo.foreground}; + @define-color sidebar_bg_color #${colo.background}; + @define-color sidebar_fg_color #${colo.foreground}; + @define-color sidebar_backdrop_color #${colo.background}; + @define-color sidebar_border_color #${colo.color5}; + @define-color secondary_sidebar_bg_color #${colo.background}; + @define-color secondary_sidebar_fg_color #${colo.foreground}; + @define-color secondary_sidebar_backdrop_color #${colo.background}; + @define-color secondary_sidebar_border_color #${colo.color6}; + @define-color warning_bg_color #${colo.color4}; + @define-color warning_fg_color #${colo.foreground}; + @define-color warning_color #${colo.color4}; + @define-color error_bg_color #${colo.color3}; + @define-color error_fg_color #${colo.foreground}; + @define-color error_color #${colo.color3}; + @define-color success_bg_color #${colo.color2}; + @define-color success_fg_color #${colo.background}; + @define-color success_color #${colo.color2}; + @define-color destructive_bg_color #${colo.color5}; + @define-color destructive_fg_color #${colo.background}; + @define-color destructive_color #${colo.color5}; + ''; + extraCss4 = '' + ''; + in { + enable = true; + theme = { + name = "adw-gtk3" + (if colo.lightness == "light" then "" else "-dark"); + package = pkgs.adw-gtk3; + }; + cursorTheme = { + name = "WhiteSur-cursors"; + }; + #iconTheme = { + # name = "suru"; + # package = pkgs.ubuntu-themes; + #}; + gtk3.extraCss = extraCss3; + gtk4.extraCss = extraCss3; + }; + home.pointerCursor = { + name = "WhiteSur-cursors"; + package = pkgs.whitesur-cursors; + }; + wayland.windowManager.sway = { + enable = true; + systemd.enable = true; + xwayland = true; + wrapperFeatures = { base = true; gtk = true; }; + swaynag = { + enable = true; + settings = { + "<config>" = { + edge = "top"; + font = "${loc.ui-font.name} ${toString loc.ui-font.size}"; + background = "${colo.background}"; + border = "${colo.background}"; + text = "${colo.foreground}"; + button-text = "${colo.foreground}"; + button-background = "${colo.color6}"; + message-padding = 5; + border-bottom-size = 1; + details-border-size = 1; + button-border-size = 1; + button-gap = 3; + button-dismiss-gap = 7; + button-padding = 3; + button-margin-right = 5; + }; + }; + }; + config = rec { + input = { + "type:keyboard" = { + repeat_rate = "45"; + repeat_delay = "220"; + xkb_options = "ctrl:nocaps"; + }; + "type:touchpad" = { + natural_scroll = "enabled"; + }; + "1189:32769:BenQ_ZOWIE_BenQ_ZOWIE_Gaming_Mouse" = { + accel_profile = "flat"; + pointer_accel = "-0.675"; + scroll_factor = "1.0"; + }; + "1241:44368:USB_Gaming_Mouse" = { # Finalmouse Ultralight 2 + accel_profile = "flat"; + scroll_factor = "0.75"; + }; + "1133:45104:Logi_POP_Mouse" = { + accel_profile = "flat"; + scroll_factor = "0.75"; + }; + "1133:50504:Logitech_USB_Receiver_Mouse" = { + accel_profile = "flat"; + scroll_factor = "0.75"; + }; + "2362:9488:PixArt_USB_Optical_Mouse" = { + accel_profile = "flat"; + scroll_factor = "0.75"; + }; + "1390:268:ELECOM_TrackBall_Mouse_HUGE_TrackBall" = { + accel_profile = "flat"; + scroll_factor = "0.25"; + scroll_method = "on_button_down"; + scroll_button = "276"; + }; + "1386:890:Wacom_One_by_Wacom_S_Pen" = { + map_to_output = loc.monitors.monitor1; + left_handed = "enabled"; + }; + }; + modifier = "Mod1"; + menu = "dmenu-path | bemenu-colored | ${pkgs.findutils}/bin/xargs swaymsg exec --"; + focus.wrapping = "yes"; + keybindings = let + mod1 = "Mod1"; + in { + "button4" = "nop"; + "button5" = "nop"; + "${mod1}+d" = "exec ${menu}"; + "${mod1}+e" = "exec dmenu-emoji | bemenu-colored | awk '{split($0,a);printf \"%s\", a[1];}' | wl-copy"; + "${mod1}+q" = "exec screenshot qrcode"; + "${mod1}+c" = "exec screenshot color"; + "${mod1}+Shift+q" = "kill"; + "${mod1}+h" = "focus left"; + "${mod1}+j" = "focus down"; + "${mod1}+k" = "focus up"; + "${mod1}+l" = "focus right"; + "${mod1}+Shift+h" = "move left"; + "${mod1}+Shift+j" = "move down"; + "${mod1}+Shift+k" = "move up"; + "${mod1}+Shift+l" = "move right"; + "${mod1}+b" = "split h"; + "${mod1}+v" = "split v"; + "${mod1}+f" = "fullscreen toggle"; + "${mod1}+space" = "floating toggle"; + "${mod1}+r" = "mode \"resize\""; + "${mod1}+Shift+c" = "reload"; + "${mod1}+Shift+e" = "exec swaynag -m 'Do you really want to exit?' -B 'Yes' 'swaymsg exit'"; + "Print" = "exec screenshot main"; + "Shift+Print" = "exec screenshot full"; + "${mod1}+Shift+s" = "exec screenshot"; + "${mod1}+s" = "exec wlsunset-toggle"; + "${mod1}+Shift+t" = "exec swaymsg -- input 1386:890:Wacom_One_by_Wacom_S_Pen events disabled"; + }; + modes = { + resize = { + Escape = "mode default"; + h = "resize shrink width 1 px"; + j = "resize grow height 1 px"; + k = "resize shrink height 1 px"; + l = "resize grow width 1 px"; + }; + }; + fonts = { + names = [ loc.ui-font.name ]; + style = "Regular"; + size = loc.ui-font.size + 0.0; + }; + bars = [ ]; + window = { + border = 2; + titlebar = false; + commands = [ + { command = "move to scratchpad"; criteria.app_id = "kitty-server"; } + { command = "allow_tearing yes"; criteria.app_id = "kitty"; } + { command = "inhibit_idle fullscreen; floating enable"; criteria.app_id = "cmv"; } + { command = "floating enable"; criteria.class = "cmv.exe"; } + { command = "floating enable"; criteria.app_id = "mauri"; } + { command = "inhibit_idle fullscreen"; criteria.title = "Parsec"; } + { command = "inhibit_idle fullscreen"; criteria.class = "streaming_client"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "steam_app_.*"; } + { command = "inhibit_idle fullscreen; allow_tearing yes; floating enable"; criteria.app_id = "gamescope"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = ".gamescope-wrapped"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.app_id = "osu!"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "cs2"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.class = "Minecraft*"; } + { command = "inhibit_idle fullscreen; allow_tearing yes"; criteria.title = "Overwatch"; } + { command = "inhibit_idle fullscreen"; criteria.class = "Ryujinx"; } + { command = "inhibit_idle fullscreen"; criteria.app_id = "org.yuzu_emu.yuzu"; } + { command = "inhibit_idle fullscreen"; criteria.app_id = "info.cemu.Cemu"; } + { command = "inhibit_idle fullscreen"; criteria.class = "dolphin-emu"; } + { command = "inhibit_idle fullscreen"; criteria.class = "AppRun"; } # Ishiiruka-Dolphin + { command = "inhibit_idle fullscreen"; criteria.class = "SuperMeatBoy"; } + ]; + }; + colors = let + bg = "#${colo.background}"; + fg = "#${colo.foreground}"; + ch = "#${colo.color4}"; + urgent = "#${colo.color1}"; + in { + background = bg; + focused = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; }; + focusedInactive = { background = bg; border = ch; childBorder = ch; indicator = ch; text = fg; }; + unfocused = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; }; + urgent = { background = urgent; border = urgent; childBorder = urgent; indicator = urgent; text = fg; }; + placeholder = { background = bg; border = bg; childBorder = bg; indicator = bg; text = fg; }; + }; + startup = let + gnome-schema = "org.gnome.desktop.interface"; + in [ + { command = "dconf write /org/gnome/desktop/interface/color-scheme \"'prefer-${colo.lightness}'\""; always = true; } + { command = "dbus-sway-environment"; } + { command = "swaymsg 'seat * hide_cursor 4000'"; always = true; } + { command = "kitty -1 --class=\"kitty-server\""; } + { command = "wlsunset-toggle"; } + ]; + }; +# extraConfig = '' +# blur enable +# blur_passes 4 +# blur_radius 2 +# blur_contrast 1.5 +# blur_saturation 1.1 +# ''; + }; + services.swayidle = { + enable = true; + timeouts = [ + { + timeout = 300; + command = "${pkgs.sway}/bin/swaymsg \"output * dpms off\""; + resumeCommand = "${pkgs.sway}/bin/swaymsg \"output * dpms on\""; + } + ]; + }; + services.mako = { + enable = true; + settings = { + default-timeout = 14000; + font = "${loc.font.name} ${toString loc.ui-font.size}"; + background-color = "#${colo.background}"; + text-color = "#${colo.foreground}"; + border-color = "#${colo.color6}"; + }; + }; + }; +} diff --git a/nix_archive/nix/programs/waydroid.nix b/nix_archive/nix/programs/waydroid.nix new file mode 100644 index 0000000..af0c207 --- /dev/null +++ b/nix_archive/nix/programs/waydroid.nix @@ -0,0 +1,3 @@ +{ ... }: { + virtualisation.waydroid.enable = true; +} diff --git a/nix_archive/nix/programs/zsh.nix b/nix_archive/nix/programs/zsh.nix new file mode 100644 index 0000000..6071429 --- /dev/null +++ b/nix_archive/nix/programs/zsh.nix @@ -0,0 +1,76 @@ +{ config, pkgs, ... }: { + programs.zsh.enable = true; + + environment.shells = [ pkgs.zsh ]; + environment.pathsToLink = [ "/share/zsh" ]; + users.defaultUserShell = pkgs.zsh; + environment.sessionVariables = { + SHELL = "${pkgs.zsh}/bin/zsh"; + }; + + home-manager.users.andrew = let + homeDir = "${config.users.users.andrew.home}"; + in { + programs.zsh = { + enable = true; + shellAliases = { + sudo = "nocorrect sudo "; + xargs = "nocorrect xargs "; + cp = "rsync -avz"; + top = "htop"; + bc = "bc -l"; + pgrep = "pgrep -f"; + make = "make -j6"; + diff = "diff -u"; + gdb = "gdb -q"; + mail = "neomutt"; + iroha = "ssh andrew@iroha"; + moyo = "ssh andrew@moyo"; + zasshi = "ssh andrew@zasshi"; + denpa = "ssh moyo -t 'ssh 192.168.122.89'"; + rod = "ssh -p 1738 rod"; + bmrg = "ssh boomerang"; + cmv = "$HOME/c/camu/scripts/cmv.sh"; + cmv-add = "$HOME/c/camu/scripts/cmv_add.sh"; + cmv-pause = "cmv-add PAUSE"; + cmv-next = "cmv-add NEXT"; + cmv-prev = "cmv-add PREV"; + cmv-shuffle = "cmv-add SHUFFLE"; + cmv-sort = "cmv-add SORT"; + cmv-reverse = "cmv-add REVERSE"; + cmv-clear = "cmv-add CLEAR"; + }; + defaultKeymap = "emacs"; + history = { + save = 10000; + size = 10000; + append = true; + expireDuplicatesFirst = true; + extended = true; + path = "${homeDir}/.histfile"; + # Don't share history between sessions. + share = false; + }; + # Completion tanks startup performance. + enableCompletion = false; + zprof.enable = false; + initExtra = '' + autoload -U colors && colors + exit_code_guy() + { + if [[ $? == 0 ]]; then + echo "(・_・) >" + else + echo "(″ロ゛) > %{$fg[red]%}$?%{$fg[cyan]%}" + fi + } + setopt prompt_subst + if [[ -v NIX_SHELL ]]; then + PS1="($NIX_SHELL)%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} " + else + PS1="%{$fg[yellow]%}%n%{$fg[red]%}@%{$fg[light\ red]%}%M%{$fg[cyan]%}:%~\$(exit_code_guy)%{$reset_color%} " + fi + ''; + }; + }; +} |